QT知识点总结

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);
    }
}

版权声明:本文为weixin_43654097原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。