你不知道的21個Qt隱藏功能和技巧

原文鏈接:https://blog.csdn.net/aladdina/article/details/5618247

你不知道的21個Qt隱藏功能和技巧

2010年05月23日 16:45:00 莫等閒 閱讀數 14231

版權聲明:本文爲博主原創文章,遵循 CC 4.0 by-sa 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/aladdina/article/details/5618247

  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。

文中的內容來自最近在StackOverflow上的一個討論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章