Qt常用宏定义

本文章主要积累一些常用宏 定义,有些定义在头文件QtGlobal中

  1. QT_VERSION ,QT_VERSION_CHECK
//主要用于条件编译设置,根据Qt版本不同编译不同的代码
//我这里用的Qt版本是5.7.1,因此软件走的分支是cc = 10000
示例代码:
#if QT_VERSION >= QT_VERSION_CHECK(5,7,2) 
    int cc = 0;
#else
    int cc = 10000;
#endif

  1. QT_VERSION_STR
qDebug() << QT_VERSION_STR << endl;


3. Q_BYTE_ORDER,Q_BIG_ENDIAN,Q_LITTLE_ENDIAN
系统内存数据字节序,指示大小端

#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN  //我的这个平台是小端的
    qDebug() << "Q_LITTLE_ENDIAN" << endl;
#else

#endif

在这里插入图片描述
4. debug输出失能设置 宏 QT_NO_DEBUG_OUTPUT,在pro文件添加如下代码,软件中所有QDebug将失效

 DEFINES += QT_NO_DEBUG_OUTPUT
  1. Q_UNUSED(valuename) 用于函数中未使用的变量,告诉编译器这个变量不需要告警
    特别的,也可以在pro文件添加如下代码屏蔽未使用的告警
QMAKE_CXXFLAGS += -Wno-unused-parameter
  1. Q_DECL_OVERRIDE 用于类的函数声明后面,重载一个虚函数,使用了此宏的话,没有进行任何重载操作,编译器会报错

  2. Q_DECL_FINAL 用于将一个虚函数定义为最终级别,不能再被重载,或者定义一个类不能再被继承

class QPushButton Q_DECL_FINAL {  //QPushButton 不能再被继承
	//...
};
  1. Q_SIGNAL:不需要signals关键字就可以将一个函数指定为singal函数

  2. Q_SLOT:不需要slots关键字就可以将一个函数指定为slot函数

  3. qChecksum:计算基于CRC-16-CCITT算法的CRC-16校验码

  4. qCompress/qUncompress:基于zlib的算法对字节缓存区进行压缩/解压,可以自定义压缩比

  5. qDeleteAll:对容器或者迭代器中的每个对象进行delete操作

  6. qRound/qRound64:对浮点数取整,四舍五入

  7. qFuzzyCompare:线程安全的浮点数模糊比较,处理了浮点精度误差的问题

  8. qVersion:获取当前正在运行的Qt的版本号

  9. QSysInfo:获取当前运行的系统信息,包括版本号等,Mac/Symbian/Windows均适用

  10. QtEndian:处理不同体系架构下字节存储次序不同的问题

  11. QObject::findChildren<>:找出隐藏的子对象

  12. qobject_cast:不需要编译器RTTI的支持就可以实现C++标准库dynamic_cast的功能

  13. QObject::deleteLater:在事件处理循环中调用,则在事件处理循环结束时删除自己;在事件处理循环外调用,则在下一个事件处理循环开始时删除自己

  14. qPrintable:类似QString::toLocal8Bit()::constData(),但是更好记

  15. connect(SomeObj, SIGNAL(foo()), SIGNAL(bar()):通过一个signal自动触发另一个signal。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值