学习资料:21个Qt隐藏功能和技巧
最近看了stackoverflow上一个讨论,写了篇blog,列举了Qt的一些鲜为人知但是非常有用的小功能:
1. Q_GADGET:不需要从QObject继承就可以使用Qt的Meta Object功能
2. Q_ENUMS:对枚举对象进行反射(reflection)
3. Q_SIGNAL:不需要signals关键字就可以将一个函数指定为singal函数
4. Q_SLOT:不需要slots关键字就可以将一个函数指定为slot函数
5. Q_FOREACH:Qt提供的关键字foreach在配置文件里面定义了no_keywords的时候就失效了,而Q_FOREACH宏无论何时都有效
6. Q_FOREVER:原因同Q_FOREACH,用法和关键字forever一样
7. qChecksum:计算基于CRC-16-CCITT算法的CRC-16校验码
8. qCompress/qUncompress:基于zlib的算法对字节缓存区进行压缩/解压,可以自定义压缩比
9. qDeleteAll:对容器或者迭代器中的每个对象进行delete操作
10. qRound/qRound64:对浮点数取整,四舍五入
11. qFuzzyCompare:线程安全的浮点数模糊比较,处理了浮点精度误差的问题
12. qVersion:获取当前正在运行的Qt的版本号
13. sender:在slot函数中调用可以获取发送该signal的对象。仅用于来自同一线程的Qt::DirectConnection连接的 signal。由于这种做法破坏了面向对象的原则,慎用!
14. QSysInfo:获取当前运行的系统信息,包括版本号等,Mac/Symbian/Windows均适用
15. QtEndian:处理不同体系架构下字节存储次序不同的问题
16. QObject::findChildren<>:找出隐藏的子对象
17. qobject_cast:不需要编译器RTTI的支持就可以实现C++标准库dynamic_cast的功能
18. QObject::deleteLater:在事件处理循环中调用,则在事件处理循环结束时删除自己;在事件处理循环外调用,则在下一个事件处理循环开始时删除自己
19. qPrintable:类似QString::toLocal8Bit()::constData(),但是更好记
20. qDebug():类似Windows下的TRACE或者OutputDebugString
21. connect(SomeObj, SIGNAL(foo()), SIGNAL(bar()):通过一个signal自动触发另一个signal。
如果要看原文的话在这里:http://blog.csdn.net/aladdina/archive/2010/05/23/5618247.aspx
大家还有啥补充或者建议吗?
1. Q_GADGET:不需要从QObject继承就可以使用Qt的Meta Object功能
2. Q_ENUMS:对枚举对象进行反射(reflection)
3. Q_SIGNAL:不需要signals关键字就可以将一个函数指定为singal函数
4. Q_SLOT:不需要slots关键字就可以将一个函数指定为slot函数
5. Q_FOREACH:Qt提供的关键字foreach在配置文件里面定义了no_keywords的时候就失效了,而Q_FOREACH宏无论何时都有效
6. Q_FOREVER:原因同Q_FOREACH,用法和关键字forever一样
7. qChecksum:计算基于CRC-16-CCITT算法的CRC-16校验码
8. qCompress/qUncompress:基于zlib的算法对字节缓存区进行压缩/解压,可以自定义压缩比
9. qDeleteAll:对容器或者迭代器中的每个对象进行delete操作
10. qRound/qRound64:对浮点数取整,四舍五入
11. qFuzzyCompare:线程安全的浮点数模糊比较,处理了浮点精度误差的问题
12. qVersion:获取当前正在运行的Qt的版本号
13. sender:在slot函数中调用可以获取发送该signal的对象。仅用于来自同一线程的Qt::DirectConnection连接的 signal。由于这种做法破坏了面向对象的原则,慎用!
14. QSysInfo:获取当前运行的系统信息,包括版本号等,Mac/Symbian/Windows均适用
15. QtEndian:处理不同体系架构下字节存储次序不同的问题
16. QObject::findChildren<>:找出隐藏的子对象
17. qobject_cast:不需要编译器RTTI的支持就可以实现C++标准库dynamic_cast的功能
18. QObject::deleteLater:在事件处理循环中调用,则在事件处理循环结束时删除自己;在事件处理循环外调用,则在下一个事件处理循环开始时删除自己
19. qPrintable:类似QString::toLocal8Bit()::constData(),但是更好记
20. qDebug():类似Windows下的TRACE或者OutputDebugString
21. connect(SomeObj, SIGNAL(foo()), SIGNAL(bar()):通过一个signal自动触发另一个signal。
如果要看原文的话在这里:http://blog.csdn.net/aladdina/archive/2010/05/23/5618247.aspx
大家还有啥补充或者建议吗?
...全文
相关推荐
Qt实现窗体在显示屏旁边自动隐藏/显示
总的来说,这个项目涉及了Qt窗体的事件处理、自定义行为以及屏幕信息的获取,对于提高Qt编程技巧和理解窗口管理机制有着重要的实践意义。通过这样的实现,我们可以为用户提供更加智能化和符合直觉的交互体验。
Qt对话框标题栏修改技巧
本文介绍了如何隐藏对话框的标题栏以及如何让其变为透明的方法,并提供了实现这些功能的具体代码示例。在实际开发过程中,可以根据项目的需求灵活运用这些技巧,从而创建出更加美观、实用的应用程序。
qt学习资料
Qt是Qt Company开发的一种跨平台应用程序开发框架,广泛应用于桌面、移动和嵌入式设备的软件开发。这个“qt学习资料”压缩包显然是为初学者准备的,旨在帮助他们掌握Qt的基本概念和编程技巧。
QT-侧靠动画窗口-隐藏和显示窗体
通过理解和实践这些概念,开发者可以创建出具有丰富动态效果的QT应用,提升用户体验。在提供的压缩包文件"QtSideWidget"中,可能包含了实现这一功能的示例代码,可供学习和参考。
linux下用Qt完成的21点扑克牌游戏
在Linux环境下,使用Qt框架开发21点扑克牌游戏是一个典型的跨平台图形用户界面编程实践。Qt是一个功能强大的C++库,它提供了丰富的组件和工具,可以用来创建美观且功能完善的桌面应用程序。


