分析21個 Qt隱藏功能和技巧
分析21個 Qt 隱藏功能和技巧是本文將要介紹的內容,一一詳細的羅列出來,以方便大家閱讀方便。
Q_GADGET:不需要從QObject繼承就可以使用Qt的Meta Object功能
Q_ENUMS:對枚舉對象進行反射(reflection)
Q_SIGNAL:不需要signals關鍵字就可以將一個函數(shù)指定為singal函數(shù)
Q_SLOT:不需要slots關鍵字就可以將一個函數(shù)指定為slot函數(shù)
Q_FOREACH:Qt提供的關鍵字foreach在配置文件里面定義了no_keywords的時候就失效了,而Q_FOREACH宏無論何時都有效
Q_FOREVER:原因同Q_FOREACH,用法和關鍵字forever一樣
qChecksum:計算基于CRC-16-CCITT算法的CRC-16校驗碼
qCompress/qUncompress:基于zlib的算法對字節(jié)緩存區(qū)進行壓縮/解壓,可以自定義壓縮比
qDeleteAll:對容器或者迭代器中的每個對象進行delete操作
qRound/qRound64:對浮點數(shù)取整,四舍五入
qFuzzyCompare:線程安全的浮點數(shù)模糊比較,處理了浮點精度誤差的問題
qVersion:獲取當前正在運行的Qt的版本號
sender:在slot函數(shù)中調用可以獲取發(fā)送該signal的對象。僅用于來自同一線程的Qt::DirectConnection連接的signal。由于這種做法破壞了面向對象的原則,慎用!
QSysInfo:獲取當前運行的系統(tǒng)信息,包括版本號等,Mac/Symbian/Windows均適用
QtEndian:處理不同體系架構下字節(jié)存儲次序不同的問題
QObject::findChildren<>:找出隱藏的子對象
qobject_cast:不需要編譯器RTTI的支持就可以實現(xiàn)C++標準庫dynamic_cast的功能
QObject::deleteLater:在事件處理循環(huán)中調用,則在事件處理循環(huán)結束時刪除自己;在事件處理循環(huán)外調用,則在下一個事件處理循環(huán)開始時刪除自己
qPrintable:類似QString::toLocal8Bit()::constData(),但是更好記
qDebug():類似Windows下的TRACE或者OutputDebugString
connect(SomeObj, SIGNAL(foo()), SIGNAL(bar()):通過一個signal自動觸發(fā)另一個signal。
小結:分析21個 Qt 隱藏功能和技巧的內容介紹完了,希望本文會對你有所幫助!