Qt作為一款廣受歡迎的跨平臺(tái)開發(fā)框架,很多應(yīng)用程序開發(fā)人員選擇作為開發(fā)工具。Qt的樣式表能使我們方便定義窗口控件的顯示效果,功能很強(qiáng)大,使用方式多樣。
員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團(tuán)隊(duì)的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。成都創(chuàng)新互聯(lián)公司堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專注于為企業(yè)提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、電商網(wǎng)站開發(fā),重慶小程序開發(fā),軟件按需定制設(shè)計(jì)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。
/*?*QWidget*?*/
QWidget?{
border:?1px?solid?#FF0000;????/*邊框*/
border-radius:?5px;???????????/*圓角*/
background-color:?red;????????/*背景色*/
}
關(guān)于QSS要注意的坑。
- qss源自css,相當(dāng)于css的一個(gè)子集,主要支持的是css2標(biāo)準(zhǔn),很多網(wǎng)上的css3的標(biāo)準(zhǔn)的寫法在qss這里是不生效的,所以不要大驚小怪。
- qss也不是完全支持所有的css2,比如text-align官方文檔就有說明,只支持 QPushButton and QProgressBar,務(wù)必看清楚。
- 有時(shí)候偷懶直接來一句 *{xxx},你會(huì)發(fā)現(xiàn)大部分是應(yīng)用了,也有小部分或者極個(gè)別沒有應(yīng)用,你可能需要在對(duì)應(yīng)的窗體中 this-setStyleSheet() 來設(shè)置。
- qss的執(zhí)行是有優(yōu)先級(jí)的,如果沒有指定父對(duì)象,則對(duì)所有的應(yīng)用,比如在窗體widget中 {color:#ff0000;} 這樣會(huì)對(duì)widget以及widget的所有子對(duì)象應(yīng)用該樣式,這種問題各大群每周都有人問,你會(huì)發(fā)現(xiàn)各種奇奇怪怪的異樣不正常,怎么辦呢,你需要指定類名或者對(duì)象名,比如 #widget{color:#ff0000;} 這樣就只會(huì)對(duì)widget對(duì)象應(yīng)用該樣式,另一種寫法 QWidget#widget{color:#ff0000;},只想對(duì)窗體本身而不是子控件按鈕標(biāo)簽等 .QWidget{color:#ff0000;} ,具體詳細(xì)規(guī)則參見官方說明。
- qss整體來說還是可以的,解析速度性能在Qt5高版本后期比Qt4好很多,尤其是修復(fù)了不少qss中的解析繪制BUG。盡管有這樣那樣的BUG,懷著包容的心對(duì)待它。
- qss官方學(xué)習(xí)地址1:[]()
- qss官方學(xué)習(xí)地址2:[]()
Qt樣式表有多種運(yùn)行機(jī)制,主要是考慮到各種需求場(chǎng)景,繼承自QWidget的類和qApp類都支持setStyleSheet方法,還可以統(tǒng)一將樣式表放在文件,或者將樣式文件加入到資源文件。
- 斗氣:qss內(nèi)容寫得到處都是,哪里需要就寫在哪里,各種控件調(diào)用 setStyleSheet方法傳入樣式表內(nèi)容,或者直接對(duì)應(yīng)控件鼠標(biāo)右鍵彈出菜單選擇改變樣式表填入內(nèi)容;
- 斗者:qss內(nèi)容放在文件,讀取文件內(nèi)容設(shè)置樣式表,程序發(fā)布的時(shí)候帶上qss文件;
- 斗師:qss文件作為資源文件放到qrc文件,直接編譯到可執(zhí)行文件中,防止篡改;
- 斗靈:在qss文件中自定義一些標(biāo)志充當(dāng)變量使用,讀取以后替換對(duì)應(yīng)的變量為顏色值,類似動(dòng)態(tài)換膚;
- 斗王:放在文件容易被篡改,集成到可執(zhí)行文件不夠靈活,一旦樣式表更新需要重新編譯文件,如何做到既能只更新樣式表文件,又不需要重新編譯可執(zhí)行文件,又能防止被篡改:采用rcc命令將資源文件編譯生成二進(jìn)制,只需要替換該二進(jìn)制文件即可;
- 斗皇:繼承qstyle類自己實(shí)現(xiàn)完成所有樣式接口,統(tǒng)一整體風(fēng)格,大名鼎鼎的UOS系統(tǒng)默認(rèn)規(guī)則就是如此,不允許用樣式表,全部painter繪制;