概述

轉眼七年過去了,我是一個徹底擁抱過MFC的人,記得老大的一個需求要把按鈕做成圓角,并添加背景顔色,做前端html的可能認為很簡單,然而放到MFC上那可真的是很...很麻煩的,自定義類繼承Button ,新手估計還搞不定,怎麼也有上百行代碼,實在不友好,Qt誕生大大簡化了這些工作,隻需要使用QSS(Qt Style Sheet)就可以輕松做到,最近詳細了解了QSS,做了個百度網盤的登入界面,整理好我會把源碼放出來,供大家參考。
QSS文法

background-color:rgb(6, 168, 255); 背景色
color:red; 字型顔色
border-radius:5px; 邊框圓角半徑
border:2px solid green; 邊框2像素,實作,綠色
font:10pt; 字型大小10
設定QSS方法

方法一:UI界面設定
滑鼠到按鈕上右鍵,"改變樣式表",在編輯樣式表對話框中添加QSS樣式。
方法二:程式添加
每一個控件都有setStyleSheet(const QString &styleSheet)方法,樣式字元串直接傳參即可,例:
ui.pushButton1->setStyleSheet("QPushButton{background-color: white; color: rgb(100, 100, 100) ;}");
方法三:通過QSS檔案添加
建立檔案StyleSheet.qss檔案,添加内容如下:
/*按鈕靜止無操作樣式*/
讀取配置檔案設定指定按鈕樣式:
parent)
實際項目中一般qss檔案直接添加到資源裡面,一起打包到EXE檔案中,這樣檔案不會直接暴露給使用者。
Selector

一個UI界面有很多控件,使用一個qss檔案來指定樣式時,可以使用Selector來分别設定控件的樣式
1.屬性覆寫,一個qss檔案裡,後面定義的style會覆寫先前的style。
2.同一行中多個類型需要用逗号分隔。
QPushButton,
3.屬性分類
例如:有6個PushButton控件,3個設定為樣式一,另外三個設定為樣式二
方法一:
設定前3個控件的whatsThis為style1,後三個控件為style2
修改StyleSheet.qss檔案内容
QPushButton
方法二:
直接在qss檔案裡指定object name,不推薦這種方式,6個控件需要些六遍,分别指定object name。
QPushButton
最後在程式的入口函數設定如下代碼:
QApplication a(argc, argv);
最後附上一張使用QSS技術仿的百度網盤界面:
--更多文章--
【Qt開發】實作系統托盤,托盤菜單,托盤消息
每天都在用的5個C語言開源項目