Qt常见宏定义
Qt常见宏定义
Q_OBJECT:继承了QObject类的类,使其具有信号槽的能力。
QObject 是Qt模块的核心。它的最主要特征是关于对象间无缝通信的机制:信号与槽。使用connect()建立信号到槽的连接,使用disconnect()销毁连接,使用blockSignals()暂时阻塞信号以避免无限通知循环,使用connectNotify()和disconnectNotify()追踪连接。
使用信号槽,必须直接或间接继承QObject,都应该在第一行代码写上Q_OBJECT。不管是不是使用信号槽,都应该添加这个宏。这个宏的展开将为我们的类提供信号槽机制、国际化机制以及 Qt 提供的不基于 C++ RTTI 的反射能力。因此,如果你觉得你的类不需要使用信号槽,就不添加这个宏,就是错误的。其它很多操作都会依赖于这个宏。
示例:
1 |
|
常见系统宏定义
Q_OS_MAC:Mac系统宏定义
Q_OS_WIN:Windoows(x86/x64)系统宏定义
Q_OS_WIN32:Windoows(x86/x64)系统宏定义
Q_OS_WIN64:Windoows(x64)系统宏定义
Q_OS_ANDROID:Android系统宏定义
Q_OS_LINUX:liunx系统宏定义
示例:
1 |
|
虚函数宏定义
Q_DECL_OVERRIDE:防止虚函数重写不正确
1 | void paint(QPainter *painter, |
取消警告
Q_UNUSED(index): 取消没有使用的变量警告
1 | void paint(int index ,int abc) |
国际化
Q_DECLARE_TR_FUNCTIONS(what) : 给非Qt类添加翻译支持
1 | struct Tr |
QT_TR_NOOP() 和QT_TRANSLATE_NOOP() :翻译的文本在函数的外部
QT_TR_NOOP() 示例
1 | QString FriendlyConversation::greeting(int type) |
QT_TRANSLATE_NOOP() 示例
1 | staticconst char *greeting_strings[]= { |
PS:如果你用宏QT_NO_CAST_FROM_ASCII定义来编译软件禁止从const char * 到Qstring 的转换,你就可能捕获任何漏掉的字符串。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mearc!
评论










