标题:Qt开发经验总结之武林秘籍
作者:liudianwu
日期:2019-06-02 12:03
内容:
一、开发经验总结
1. 当编译发现大量错误的时候,从第一个看起,一个一个的解决,不要急着去看下一个错误,往往后面的错误都是由于前面的错误引起的,第一个解决后很可能都解决了。
2. 定时器是个好东西,学会好使用它,有时候用QTimer::singleShot可以解决意想不到的问题。
3. 打开creator,在构建套件的环境中增加MAKEFLAGS=-j8,可以不用每次设置多线程编译。珍爱时间和生命。新版的QtCreator已经默认就是j8。
4. 如果你想顺利用QtCreator部署安卓程序,首先你要在AndroidStudio 里面配置成功,把坑全部趟平。
5. 很多时候找到Qt对应封装的方法后,记得多看看该函数的重载,多个参数的,你会发现不一样的世界,有时候会恍然大悟,原来Qt已经帮我们封装好了。
6. 可以在pro文件中写上标记版本号+ico图标(Qt5才支持)
```
VERSION = 2018.7.25
RC_ICONS= main0.ico
```
7. 管理员运行程序,限定在MSVC编译器。
```
QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\" #以管理员运行
QMAKE_LFLAGS += /SUBSYSTEM:WINDOWS,\"5.01\" #VS2013 在XP运行
```
8. 运行文件附带调试输出窗口
CONFIG += console pro
9. 绘制平铺背景QPainter::drawTiledPixmap
绘制圆角矩形QPainter::drawRoundedRect(),而不是QPainter::drawRoundRect();
10. 移除旧的样式
```
//移除原有样式
style()->unpolish(ui->btn);
//重新设置新的该控件的样式。
style()->polish(ui->btn);
```
11. 获取类的属性
```
const QMetaObject *metaobject = object->metaObject();
int count = metaobject->propertyCount();
for (int i = 0; i < count; ++i) {
QMetaProperty metaproperty = metaobject->property(i);
const char *name = metaproperty.name();
QVariant value = object->property(name);
qDebug()
#1 [青春的年代 06-02 12:20]
偷工减料45直接跳到了95
#2 [liulin188 06-02 13:02]
楼主帮我看看这个帖子咋搞
http://www.qtcn.org/bbs/read-htm-tid-85619.html
#3 [fight傲 06-03 08:38]
多谢分享,
#4 [305750665 06-03 09:26]
刘总这个总结的很到位。对刘总更加佩服不已
#5 [xzp21st 06-03 09:38]