Qt小技巧集錦

2021-09-24 13:39:24 字數 2325 閱讀 7062

除了/*...*///...還可以使用下面的方式注釋

#if 0    

需要注釋的**

#endif

使用c語言全域性巨集輸出除錯資訊所在檔案、行號

#define cout qdebug()<

<<__file__>

<

<<__line__>

<

建構函式中:

cout<

結果如圖:

注意:file和line兩邊各是兩個下劃線__

當然,也可以直接用qdebug輸出:

檔案、行號、所在函式

qdebug() << __file__

<< __line__

<< __function__

<< "this is a test";

結果:******.cpp 54 initform this is a test使用#define巨集定義

#define qdebug() qdebug() <

<< __file__

<<__function__ __line__>

<

<

你甚至可以在同乙個專案裡使用兩種訊號與槽機制。只需要把下面一行加到你的專案檔案(.pro)

config +=no_keywords

這行命令式告訴qt在使用第三方類庫如boost時不定義signals,slots和emit關鍵字。在no_keywords標誌下繼續使用qt的訊號與槽,只要簡單替換源**中qt的moc關鍵字為相對應的qt巨集q_signals (q_signal), q_slots (q_slot) 和q_emit。

例如:

原來: private slots:

現在 :private q_slots

config +=warn_off

有時候我們需要遮蔽一些無用的警告,不過,還是建議把警告保留,方便除錯。

.pro檔案中加入以下**設定版本號為1.0.0.0

version =1.0.0.0

.pro檔案中,設定依賴檔案:

win32

unix

.cpp檔案判斷系統

#ifdef q_os_win//如果是windows系統

#ifdef q_os_linux//如果是linux系統

平時**測試會用到很多debug輸出,當想遮蔽工程裡面所有的debug輸出時,

可以在pro檔案中新增這麼一行,

defines+=qt_no_debug_output

檢測程式是debug版還是release版

#ifdef qt_no_debug  

qdebug() << "release mode";

#else

qdebug() << "debug mode";

#endif

.pro檔案中加入:qmake_cxxflags += /mp指定/mp編譯選項,編譯器將使用並行編譯,同時起多個編譯程序並行編譯不同的cpp檔案

#msvc支援設定

msvc

msvc:qmake_cxxflags += $$

#指定stable.h這個標頭檔案作為編譯預處理檔案,mfc裡這個檔案一般叫stdafx.h 然後在 stable.h裡 包含你所用到的所有 qt 標頭檔案

#在.pro 檔案中加入一行, 加在這裡,加速編譯。

#msvc:precompiled_header = $$b-qt.h

#指出:precompiler header只能用於msvc

#這個功能可用,可是編譯問題比較多,不方便,所以預設不開啟。

}

待續……

QT 小知識集錦

首先設定autofillbackground 屬性為真 然後定義乙個qpalette 物件 設定qpalette 物件的背景屬性 顏色或 最後設定qwidget 物件的palette 例項 qwidget widget new qwidget widget setautofillbackground...

C Qt小技巧集錦

除了 和 還可以使用下面的方式注釋 if 0 需要注釋的 endif 當同乙份 根據實際情況,可能需要執行不同的 塊時,可通過巨集定義自由更換 塊 define use new protocol ifndef use new protocol dosomething else dosomething...

50條網頁製作小技巧集錦

50條網頁製作小技巧集錦 控制橫向和縱向滾動條的顯隱?設為首頁 文字或彈出指定大小的視窗 在body中加入 彈出 或文字 flash按鈕加鏈結 跳轉頁面 細線分隔線 網頁中的自動換行 就搞定了。完整的是 style table layout fixed word break break all wo...