QSS樣式表語法

2021-09-25 18:36:53 字數 2468 閱讀 3950

qss檔案存在,可以通過檔案載入進行設定

直接寫在ui檔案或者**中

從外到內

margin rectangle:最外面的矩形,主要是負責與其他視窗部件間的距離

border rectangle:包圍padding rectangle, 為邊界預留空間,可認為是視窗的外框線

padding rectangle: 包圍content rectangle,由padding屬性指定填充操作,主要是視窗部件內容與邊緣線(border)之間的空隙,由top,right,bottom和left設定他的大小;

繪製視窗部件的內容的區域,如文字、

qss樣式組成

在qss中,乙個樣式由選擇器(selector)和宣告(declaration)組成,其中,選擇器確定了樣式的作用物件,宣告確定了作用於該物件的確切樣式,如:

qpushbutton

可以同時對多個物件進行設定樣式,用逗號來分隔選擇器

宣告部分是由乙個或多個《屬性:值》鍵值對組成的列表,由分號相隔

2. qss選擇器

3. 子控制項

qss為複雜的部件定義了很多子控制項,方便對於這些複雜控制項的樣式進行控制,如qcombobox,形式為選擇器::子控制項名

example

qcombobox::drop-down 

subcontrol-origin :子控制項定位,選擇哪個就在哪個的裡面

subcontrol-position:子控制項的水平和豎直方向設定,如left center,就是水平靠左,豎直中心

position:relative 和position:absolute相對偏移和絕對偏移

以下子控制項可用:

4. 偽狀態

組成:選擇器 : 偽狀態名

具體到某乙個物件的比所有類的優先

具有偽狀態的選擇器比不指定偽狀態的選擇器的更具體

當兩個選擇器具有同樣特異性,最後一條優先

級聯效應,部件自身的樣式表的優先順序要高於任何由祖先部件繼承過來的樣式表,同樣父部件的樣式高於祖先的

qss中子部件不會自動繼承父部件屬性,需要父部件進行額外宣告

命名控制項中的部件需要加ns–

自從qt4.3以後,任何可設計的q_property都可以通過qproperty-語法來設定

為了確定規則的特殊性,qt樣式表遵循css2規範:

選擇器的特異性計算如下:

計算選擇器中id屬性的數量(= a)

計算選擇器中其他屬性和偽類的數量(= b)

計算選擇器中元素名稱的數量(= c)

忽略偽元素[即,子控制項。

連線三個數字abc(在具有大基數的數字系統中)給出了特異性。

一些例子:

* {} / * a = 0 b = 0 c = 0  - >特異性= 0 * / 

li {} / * a = 0 b = 0 c = 1 - >特異性= 1 * /

ul li {} / * a = 0 b = 0 c = 2 - >特異性= 2 * /

ul ol + li {} / * a = 0 b = 0 c = 3 - >特異性= 3 * /

h1 + * [ rel = up ] {} / * a = 0 b = 1 c = 1 - >特異性= 11 * /

ul ol li 。red {} / * a = 0 b = 1 c = 3 - >特異性= 13 * /

li 。紅色。等級 {} / * a = 0 b = 2 c = 1 - >特異性= 21 * /

#x34y {} / * a = 1 b = 0 c = 0 - >特異性= 100 * /

設定邊框顏色和畫素的時候,必須先畫素再顏色

在qss中設定寬高必須要使用 min-width和min-height,max-width,max-height來設定,用width和height設定是沒有任何效果的

QT樣式表語法

樣式規則 每個樣式規則由選擇器和宣告組成。選擇器 指定收該規則影響的部件。宣告 指定這個部件上要設定的屬性。如 qpushbutton qpushbutton 是選擇器 是宣告 color 是顏色屬性 red 是顏色屬性對應的值 選擇器 此規則指定了 qpushbutton 和它的子類使用紅色作為前...

qss 介面 樣式表

qpushbutton 設定 icon 後不能再通過樣式表設定 background color 屬性 但是可以設定background image 屬性 不清楚原因。一般情況下button為觸發方式 trigger 只有設定為checkable的時候,轉為切換狀態即toggled 預設狀況下che...

pyqt樣式表語法筆記 下 原創

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