1. 如果Qt工程的构建配置不是选择Debug模式,则启动gdb后无法使用list执行查看源程序。
2. 在运行设置中设置的参数只在程序运行时被加入,不对生成的文件造成影响。
3. Qt程序在执行到application.exec()时,界面才会被绘制出来,且开始事件驱动。
4. 当退出事件响应函数(槽函数)后,窗口才重新刷新。
5. 设置不同的构建配置后,最后清理项目后再重新构建,否则可能编译不能通过。
6. 某些UI控件在PC、目标板上会呈现出不同的外观,如QComboBox。
7. 信号与槽的连接不能放在 ui->setupUi(this) 之前,否则程序不能执行。
8. Qt Embedded 4.6.3 不支持以Qt::Tool为WindowFlags的窗体。
9. 在工程中添加一个新类时,如果该类继承了QObject、QWidget、QMainWindow、QDeclarativeItem以外的类,那么类型信息一律选择QObject,以避免出现一些未知的错误。
10. 编写网络程序时应该使用1024以上的端口号,1024以下的端口号通常被系统保留,紧密的绑定了一些服务(如80端口是http服务、21端口是ftp服务)。
11. Qt的“&”和“and”
&: 该操作符两边的数据进行逐位相与的预算。
and: 逻辑“与”,结果为布尔值。
2. 在运行设置中设置的参数只在程序运行时被加入,不对生成的文件造成影响。
3. Qt程序在执行到application.exec()时,界面才会被绘制出来,且开始事件驱动。
4. 当退出事件响应函数(槽函数)后,窗口才重新刷新。
5. 设置不同的构建配置后,最后清理项目后再重新构建,否则可能编译不能通过。
6. 某些UI控件在PC、目标板上会呈现出不同的外观,如QComboBox。
7. 信号与槽的连接不能放在 ui->setupUi(this) 之前,否则程序不能执行。
8. Qt Embedded 4.6.3 不支持以Qt::Tool为WindowFlags的窗体。
9. 在工程中添加一个新类时,如果该类继承了QObject、QWidget、QMainWindow、QDeclarativeItem以外的类,那么类型信息一律选择QObject,以避免出现一些未知的错误。
10. 编写网络程序时应该使用1024以上的端口号,1024以下的端口号通常被系统保留,紧密的绑定了一些服务(如80端口是http服务、21端口是ftp服务)。
11. Qt的“&”和“and”
&: 该操作符两边的数据进行逐位相与的预算。
and: 逻辑“与”,结果为布尔值。
12. 尽量用new/delete代替malloc/free。
13. 在工程文件中加入如下定义,可屏蔽 qDebug() 输出。
DEFINES += QT_NO_DEBUG_OUTPUT
14. 对于中文字符比较,若使用的编码方式正确,则可直接使用“==”进行比较;否则需要调用 QString::compare(str1, str2)。
15. 在.pro文件中添加 DEFINES 的声明,必须放在 TARGET 与 TEMPLATE 之前才有效。
例如:
...
DEFINES += BUILD_VERSION_PC
...
TARGET = exec_file_name
TEMPLATE = app
16. 窗体关闭
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); // 不触发 closeEvent()
connect(quitAction, SIGNAL(triggered()), this, SLOT(close())); // 触发 closeEvent()
17. 创建快捷方式(在Windows下快捷方式必须以“lnk”为扩展名)
bool QFile::link ( const QString & fileName, const QString & linkName )
18. qApp是指向当前QApplication的指针,可用来进行相应的全局操作。
19. 造型(obj是一对象指针)
QSpinBox *sp = qobject_cast<QSpinBox *>(obj);
20. 修改工程文件(.pro)的名称不会对工程造成不良影响
可能需要重新指定 [构建目录] 及目标文件名称
(修改名称的同时应删除.pro.user文件,在打开项目时 Qt Creator 会自动重新生成一个)
21. 使用.pri文件
例如:在.pro文件中加入 include(lib/qextserialport-1.2beta2/qextserialport.pri)
添加上述语句后 qextserialport.pri 中的头文件可直接包含,如:
#include "qextserialport.h"
13. 在工程文件中加入如下定义,可屏蔽 qDebug() 输出。
DEFINES += QT_NO_DEBUG_OUTPUT
14. 对于中文字符比较,若使用的编码方式正确,则可直接使用“==”进行比较;否则需要调用 QString::compare(str1, str2)。
15. 在.pro文件中添加 DEFINES 的声明,必须放在 TARGET 与 TEMPLATE 之前才有效。
例如:
...
DEFINES += BUILD_VERSION_PC
...
TARGET = exec_file_name
TEMPLATE = app
16. 窗体关闭
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); // 不触发 closeEvent()
connect(quitAction, SIGNAL(triggered()), this, SLOT(close())); // 触发 closeEvent()
17. 创建快捷方式(在Windows下快捷方式必须以“lnk”为扩展名)
bool QFile::link ( const QString & fileName, const QString & linkName )
18. qApp是指向当前QApplication的指针,可用来进行相应的全局操作。
19. 造型(obj是一对象指针)
QSpinBox *sp = qobject_cast<QSpinBox *>(obj);
20. 修改工程文件(.pro)的名称不会对工程造成不良影响
可能需要重新指定 [构建目录] 及目标文件名称
(修改名称的同时应删除.pro.user文件,在打开项目时 Qt Creator 会自动重新生成一个)
21. 使用.pri文件
例如:在.pro文件中加入 include(lib/qextserialport-1.2beta2/qextserialport.pri)
添加上述语句后 qextserialport.pri 中的头文件可直接包含,如:
#include "qextserialport.h"