QT笔记
1、Text文本框显示,并改变变量颜色。
ui->textBrowser->append(QString::asprintf("<font color='red'>%s</font> ID:<font color='blue'>0x%8.8X</font> [<font color='green'>%d</font>] <font color='#0F7F7F'>%s</font>", (pRxHdr->Feild1.Bit.Xtd)?("EXT"):("STD"), Id, pRxHdr->Feild2.Bit.Dlc, QByteArray((const char*)pDat, (int)Size).toHex(' ').data()));
2、控制台打印函数
.Pro
+printsupport
qDebug()<<(QString::asprintf("ID:0x%8.8X",pRxHdr->Feild1.Bit.Id)):(QString::asprintf("ID:0x%4.4X", (uint16_t)(pRxHdr->Feild1.Bit.Id>>18)))) << QByteArray((char*)pDat, Size).toHex(' ');
3、Hash使用
QHash<uint8_t, QString> Errors; //定义变量
Errors[0x00] = "无错误";
Errors[0x01] = "忙";
Errors[0x02] = "未开始";
ui->StErrorLb->setText( Errors[SysSt.Bit.ErrCode] ); //显示
4、编译输出文件定向及包含路径
.Pro
DESTDIR = ../Bin
INCLUDEPATH += "../Plugins/Interface"
5、修改项目图标
RC_ICONS = Clamp.ico
6、延时函数
void Delay(unsigned int msec)
{
QEventLoop loop;//定义一个新的事件循环
QTimer::singleShot(msec, &loop, SLOT(quit()));//创建单次定时器,槽函数为事件循环的退出函数
loop.exec();//事件循环开始执行,程序会卡在这里,直到定时时间到,本循环被退出
}
7、定时器事件
uint8_t InfoId = 0;
void MainWindow::timerEvent(QTimerEvent *event)
{
if(TimerId == event->timerId())
{
// SendMsg(NodeAddr, CMD_GET_SYSINFO, InfoId, FRAME_EXT, NULL, 0);
InfoId = (InfoId >= 5)?(0):(InfoId + 1);
}
}