QT樣式表語法

2021-10-17 09:54:06 字數 2676 閱讀 9145

樣式規則

每個樣式規則由選擇器和宣告組成。

選擇器:指定收該規則影響的部件。

宣告:指定這個部件上要設定的屬性。

如:qpushbutton

qpushbutton 是選擇器

是宣告;

color :是顏色屬性

red :是顏色屬性對應的值

選擇器

此規則指定了 qpushbutton 和它的子類使用紅色作為前景色。樣式表一般不區分大小寫,如color 與color表示相同的屬性。但類名、物件名以及qt屬性名區分大小寫

宣告中的多組「屬性:值」 列表以「;」隔開

如 qpushbutton

選擇器型別

通用選擇器 : * 匹配所有部件。

型別選擇器:qpushbutton 匹配qpushbutton 例項以及它的所有子類。

屬性選擇器:qpushbutton[flat=「false」] 匹配qpushbutton 的屬性flat為false的例項。

類選擇器 .qpushbutton 匹配所有qpushbutton例項,但不包括它的子類。

id選擇器 qpushbutton #okbuton 匹配所有qpushbutton中的okbutton物件。

後代選擇器:qdialog qpushbutton 匹配所有的qpushbutton例項,他們必須是qdialog的子孫部件。

孩子選擇器:qdialog>qpushbutton 匹配所有的qpushbutton例項,他們必須是qdialog的直接子部件

//拼接樣式表

qsstylrsheet +

=qstring

("qwidget[titleskin=true]\

\qwidget[bottomskin=true]\

").arg(r)

.arg

(g).

arg(b)

;//設定樣式

setstylesheet

(qsstylrsheet)

;

子控制項(子部件)

對於一些複雜的部件修改樣式,可能需要訪問它們的子部件,如qcombobox的下拉按鈕,qspinbox的向上、向下的箭頭。

如:

qcombobox::drop-down
偽狀態

滑鼠懸停在按鈕上時被應用:

qpushbutton:hover
滑鼠不懸停在按鈕上時被應用(!表否定)

qpushbutton:!hover

滑鼠懸停在乙個被選中的qcheckbok部件上時才應用規則:

qcheckbox:hover:checked
qcheckbox:hover,checked
qcombobox::drop-down:hover
衝突解決

幾個樣式規則對相同的。屬性指定不同的值時會產生衝突。如

qpushbutton#okbutton

qpushbutton

衝突原則:特殊的選擇器優先。此例中qpushbutton#okbutton代表的是單一物件,而不是乙個類的所有例項,所以okbutton的文字顏色會是灰色的,同樣的有偽狀態的比沒偽裝態的優先

當使用qt樣式時,部件並不會自動從父部件繼承字型和顏色樣式設定。如乙個qpushbutton包含乙個qgroupbox中,這裡對qgroupbox設定樣式表:

但沒有對qpushbutton設定樣式表,這時qpushbutton會使用系統的顏色,而不會繼承qgroupbox的顏色,如果想要qgroupbox的顏色設定到其子部件,可以這樣:

設定qobject 屬性

從qt4.3開始,任何可設計的q_property都可以使用「qproperty-屬性名稱」的語法來設定樣式表。如:

mylabel;}

mygroupbox

qpushbutton

使用樣式表時,每個部件被看作擁有4個同心矩形的盒子,四個矩形的內容分別為內容(content)、添襯(padding)、邊框(border)、邊距(margin)、邊框寬度和填襯寬度等屬性的預設值為0,這樣四個矩形正好重疊。

qpalette 調色盤類

qt提供的調色盤類 qpalete 專門用於管理部件的外觀顯示,相當於部件或對話方塊的調色盤,管理他們所有的顏色資訊。每個部件都包含乙個qpalette物件,在顯示時,按照它的qpalette物件中對個部件各狀態下的顏色的描述進行繪製。

QSS樣式表語法

qss檔案存在,可以通過檔案載入進行設定 直接寫在ui檔案或者 中 從外到內 margin rectangle 最外面的矩形,主要是負責與其他視窗部件間的距離 border rectangle 包圍padding rectangle,為邊界預留空間,可認為是視窗的外框線 padding rectan...

pyqt樣式表語法筆記 下 原創

python 啟動介面 qsspyqt 一 啟動介面的設定 簡單點 說話的方式簡單點 用一張靜態作為程式啟動介面為例。原來的語句 python 7行 ortant font family monospace white space pre if name main import sys mywind...

pyqt樣式表語法筆記 中 原創

pyqt qsspython 樣式表一 彈窗 在日常的各種桌面軟體的使用中,我們都會碰到彈窗。例如註冊,登入的時候,會有相應的資訊彈窗,這裡就以資訊收集彈窗為例進行彈窗的說明。常見的彈窗的資訊種類有文字類 數值類和下拉框選項這幾種。主要是通過呼叫qinputdialog這個類的各種方法實現的。下面分...