記 QSS與Qt主程式做到介面分離

2021-06-13 13:48:35 字數 1099 閱讀 6321

qt中能夠實現邏輯程式與介面分離,

主要是將按鈕貼圖,顏色繪製等放到qss檔案中,然後由相應的視窗載入就可以。

有幾點注意:

1.不同的視窗可以載入不同的qss檔案。例如程式中有多個視窗,那麼你可以為每個視窗寫乙個qss檔案,這樣每個視窗就有自己獨特的風格了。

而且更換**時,只要將載入的qss檔案更換一下就可以。

//載入qss介面檔案

qfile

qss(

"style.qss"

);//綠色中為qss資源檔案的路徑,根據需要更改

if(!

qss.

open

(qfile

::readonly

))

w.setstylesheet(

qss.readall());

a(

argc

,argv

); 中 a

.setstylesheet(

qss.readall());則預設為整個程式中所有視窗都是這個qss風格。

2.qss中既可以統一風格,又可以單獨定製。例如:

/*主視窗背景圖*/

qmainwindow

qpushbutton

/*特定按鈕貼圖*/

qpushbutton#pushbutton

qpushbutton#pushbutton:hover

qpushbutton#pushbutton:pressed

/*一般按鈕樣式*/

qpushbutton:hover

qpushbutton:focus

上述**中,通過 # 後加控制項名字就可以專門為該控制項設計風格。這樣qss就能具體到每個控制項的介面美化,而不用在程式裡摻雜,做到介面分離。相關的其他qss的用法可以查閱qt文件。

下面是測試例子效果;

解決擴充套件MFC DLL與主程式資源衝突問題

介紹這方面的文章不少,這裡僅僅簡明扼要提供 和一些說明。在要到處的mfc類加上afx ext class,比如 class afx ext class cmivptooldlg public cdialog 即可形成到處類,用dumpbin檢視發現幾乎匯出了所有的mfc函式,暫時不管他。在客戶端,也...

動態庫與主程式共享全域性變數

曾經在一次寫程式的時候,全域性使用乙個日誌物件,所有的日誌資訊都由此日誌物件寫入檔案。但是發現在動態鏈結庫裡,無法訪問到該全域性物件,後經查詢資料。發現,動態鏈結庫是否能訪問主程式的全域性變數,主程式是否能訪問動態鏈結庫裡定義的全域性變數都是可以通過鏈結指令改變此行為。主程式訪問動態鏈結庫裡的全域性...

DLL中如何應用函式指標與主程式互動

雖然在dll中定義指向主程式的函式指標,看似程式邏輯有些混亂,但工程實際應用中有時卻得這麼幹,因此簡單總結一下,函式指標在開發中的應用。第一步 建立一般的動態庫工程win32s1 第二步 在動態庫.h檔案中,自定義函式指標型別,宣告匯出函式 注 匯出函式應用到外部主程式的相關計算與結果 typede...