Qt 樣式表


Qt中可以靈活的使用層疊樣式表(CSS),其語法和css很相似。因為HTML CSS的靈活性,可以很方便的為QT界面設計自己需要的外觀。

QT4.8各部件Style Sheets的用法示例在這里:http://qt-project.org/doc/qt-4.8/stylesheet-examples.html#customizing-qlineedit

Style Sheets用戶手冊在這里:http://qt-project.org/doc/qt-4.8/stylesheet-reference.html#font

官網上寫的很詳細了,我就不多說了,直接抄過來沒啥意思說下需要注意的幾點。

1.各子對象設置樣式表

部件的對象名調用樣式表,如下

comboBox->setStyleSheet("QComboBox{border:1pxsolidgray;border-radius:3px;padding:1px18px1px3px;}");

這樣單獨對該部件設置樣式表。需要注意的就是,當后面再次使用setStyleSheet函數對comboBox設置樣式表時,之前設置的樣式表就不起作用了,也即樣式被現在定義效果的取代了。

如果想定義所有某一類控件(比如界面上所有的QComboBox)一個樣式,可以使用qApp進行設置。

2.使用qApp設置樣式表

qApp是一個全局對象,使用其設置樣式表之后,部件就固定樣式了,當然,后面使用某個子對象調用setStyleSheet函數時,會只改變函數中設置的樣式,其他的樣式不會發生改變。

比如:

qApp->setStyleSheet("QPushButton{border:2pxsolidblue;border-radius:6px;background-color:#E3EAA5;min-width:80px;}QComboBox{border:1pxsolidgray;border-radius:3px;padding:1px18px1px3px;}QLineEdit{border:1pxsolidgray;border-radius:5px;padding:08px;selection-background-color:darkgray;}");

這句話定義了按鈕、下拉框、行編輯框的樣式,界面中這三種部件都按照里面定義的樣式顯示。如果后面要對其中一個子部件的樣式進行修改,可以直接調用setStyleSheet,將需要的樣式覆蓋覆蓋掉之前的,其他的保留,例如

pushButton->setStyleSheet("QPushButton{background-color:red;}");

這樣就只改變按鈕的背景色,邊框大小那些qApp定義好的還是不變。

注意:當很多部件布局在一起時,有時先使用qApp,然后在子部件中設置會出現意想不到的結果,這時只有不用qApp,直接對子部件進行樣式表設置,每次樣式表元素都要設置全,因為單獨設置會覆蓋掉之前的樣式表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM