1. 程式人生 > >你不知道的21個Qt隱藏功能和技巧

你不知道的21個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。