QT笔记
最近终于入了QT的坑,来记录一下最近遇到的一些问题。
安装的坑
安装时建议使用:
.\qt-unified-windows-x64-4.5.2-online.exe --mirror https://mirrors.cloud.tencent.com/qt/
更换为国内源,以提升速度。
如果没找到自己想要的版本,点击右边的Archive
QT的界面逻辑
QT和MFC、Duilib的整个封装相当完善:线程、网络、甚至硬件(蓝牙)都被封装进了QT,大有一种“write once,run everywhere”的意思。
消息机制大有不同,依靠的是信号和槽,写代码时,能不止局限于处理QT定义的信号,更多的时候可以自己去写信号进行处理。而且信号与槽在编码时可以传递参数,能很方便的把后台的处理结果返回给界面。
在刚开始用QT时还不是很习惯,这里需要记住一个要点:虽然QT看上去前后端界面、逻辑不分家,但是不要让后端的代码影响界面,在后端处理时,需要更新界面的时候,一定要用发送消息的方式、不要直接在后端处理数据的地方操作界面。
信号与槽的连接:
connect(this, &lidarCalib::goBack, this, &lidarCalib::onBackwardClicked);// 普通方式
connect(this, &lidarCalib::setPwrStepStart, this,
[this](int value) {ui.inputPwrStepStart->setText(QString::number(value));
});// lamda表达式方式

