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

2021-06-23 01:51:53 字數 1181 閱讀 6399

q_gadget:不需要從qobject繼承就可以使用qt的meta object功能

q_enums:對列舉物件進行反射(reflection)

q_signal:不需要signals關鍵字就可以將乙個函式指定為singal函式

q_slot:不需要slots關鍵字就可以將乙個函式指定為slot函式

q_foreach:qt提供的關鍵字foreach在配置檔案裡面定義了no_keywords的時候就失效了,而q_foreach巨集無論何時都有效

q_forever:原因同q_foreach,用法和關鍵字forever一樣

qchecksum:計算基於crc-16-ccitt演算法的crc-16校驗碼

qcompress/quncompress:基於zlib的演算法對位元組快取區進行壓縮/解壓,可以自定義壓縮比

qdeleteall:對容器或者迭代器中的每個物件進行delete操作

qround/qround64:對浮點數取整,四捨五入

qfuzzycompare:執行緒安全的浮點數模糊比較,處理了浮點精度誤差的問題

qversion:獲取當前正在執行的qt的版本號

sender:在slot函式中呼叫可以獲取傳送該signal的物件。僅用於來自同一執行緒的qt::directconnection連線的signal。由於這種做法破壞了物件導向的原則,慎用!

qsysinfo:獲取當前執行的系統資訊,包括版本號等,mac/symbian/windows均適用

qtendian:處理不同體系架構下位元組儲存次序不同的問題

qobject::findchildren<>:找出隱藏的子物件

qobject_cast:不需要編譯器rtti的支援就可以實現c++標準庫dynamic_cast的功能

qobject::deletelater:在事件處理迴圈中呼叫,則在事件處理迴圈結束時刪除自己;在事件處理迴圈外呼叫,則在下乙個事件處理迴圈開始時刪除自己

qprintable:類似qstring::tolocal8bit()::constdata(),但是更好記

qdebug():類似windows下的trace或者outputdebugstring

connect(someobj, signal(foo()), signal(bar()):通過乙個signal自動觸發另乙個signal。

文中的內容來自最近在stackoverflow上的乙個討論。

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

q gadget 不需要從qobject繼承就可以使用qt的meta object功能 q enums 對列舉物件進行反射 reflection q signal 不需要signals關鍵字就可以將乙個函式指定為singal函式 q slot 不需要slots關鍵字就可以將乙個函式指定為slot函式...

你不知道的 和

開發中,編寫有一定逼格的 是每個程式猿都追求的。經常用來判斷的符號 和 也經常用來定義變數哦,你知道嗎?邏輯與 在有乙個運算元不是布林值的情況下,就不一定返回布林值。比如以下情況 1 第乙個運算元是物件,返回第二個數 var myinfo console.log myinfo 2 輸出22 第二個運...

你知道的和不知道的sass

關於sass,大多數人的認識乙個寫css的工具而已 其實就是的 但是這個工具的威力你發揮了多少呢。以下全部都是乾貨,希望你能用在自己的專案裡 定義集合 我們通常是這麼定義變數的 warning color ffa200 success color 62ad47 danger color ea4335...