日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

qss样式表笔记大全(一):qss名词解析(包含相关示例)

發布時間:2024/4/11 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qss样式表笔记大全(一):qss名词解析(包含相关示例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

**

前話

**
qss可以說是qt版本的css,語法類似但也存在不同點,建議閱讀本文檔之前先直接百度以下學習qss的基本使用方式。
qss主要是用于qt對ui界面的美化。
實踐方法:直接打開qmake目錄下的qtdesigner,新建控件后,右鍵點擊設置樣式。
該筆記主要參考《最全Qt樣式表使用說明》,學習實踐以及做項目過程中重新整理筆記,最終目標為形成一套qss樣式表大全,將隨著時間持續更新。

**

閱讀方式

**
本筆記可當作手冊,也可以當作學習教材,參考資料。
先了解基本的“名詞解析”后,可按照以下三個方式閱讀:
方式一:詳細查看示例,按照示例,一步一步閱讀。
方式二:需要設置某個類qss時,根據索引找,查看詳細示例。
方式三:直接閱讀所有樣式,適合系統的查漏補缺學習。

**

名詞解析

**
**

選擇器(selector)

**
選擇特定的類,如示例1中的QPushButton#pushButton_shutdown,選擇器的選擇方式有七種,如下表:

**

示例:QPusuButton使用選擇器

**

QPushButton#pushButton_shutdown {background-color: rgb(0, 255, 0, 100); // rgb可使用rgba } QPushButton#pushButton_shutdown:hover {background-color: rgb(0, 255, 0); // rgb可使用rgb,默認a為255 } QPushButton#pushButton_shutdown:pressed {background-color: red; // 可使用預知的關鍵字 } QPushButton#pushButton_shutdown:checked {background-color: red; // 可使用預知的關鍵字 }


**

子控件(sub-control)

**
子控件(同輔助選擇器),對于復雜的控件有必要對其子控件窗口進行控制,不同的控件類包含不同的子控件,如示例2中的QCheckBox中包含indicator子控件。

**

示例:QCheckBox包含sub-control

**

QCheckBox#checkBox::indicator{width:10px;height:10px;background-color: red; }

**

狀態選擇器(pseudo-states)

**
狀態選擇器,可根據不同控件的不同狀態對窗口進行控制,如”hover”表示鼠標放上時的狀態,”pressed”表示鼠標保持按下時的狀態,可根據狀態設置不同的外觀,如示例1的QPushbutton的三種狀態。

**

屬性(property)

**
屬性,是一個窗口部件所固有的特征,每一個類型的窗口控件都會有屬于他們自己的屬性,如width,height(輔助選擇器才有),color等等,定制控件的不同外觀。注意:屬性是使用邏輯否(!)操作符,如!hover,是鼠標未放在上面的其他狀態。

**

屬性值(value)

**
屬性值,跟在每一個屬性后面有一個值,可以是bool,int,10px,red,rgb(0,0,0)等等,根據屬性的不同,屬性值的類型不同,通過修改指定控件的指定屬性的屬性值來實現不同的效果,如示例1:background-color,實例2:width、height、background-color。

**

盒模型(box model)

**
盒模型,包含了4個影響布局的矩形,如下圖:

content rectangle:繪制窗口部件的內容的區域,如文字,圖片。
padding rectangle:包圍content rectangle,由padding屬性指定填充操作,主要是窗口部件內容與邊緣線(border)之間的空隙,由top,right,bottom和left設置他的大小,缺省為0。
border rectangle:包圍padding rectangle,為邊界預留空間,可認為是窗口的外框線。
margin rectangle:最外面的矩形,主要是負責與其他窗口部件間的距離。
注意:若都沒有指定,缺省是四個重合在一起。

**

角弧度(radius)

**
窗口部件4個角弧度,設置radius設置角的弧度,如border-radius:4px。

**

前景色(color)

**
窗口部件的前景色用戶繪制窗口部件上面的文本,由color設置。

**

背景色(背景圖片)

**
窗口部件背景色,用于填充矩形,可通過background-color屬性設置。當需要使用圖片時,可使用background-image屬性,指定資源控制,背景圖片在盒模式區域的對齊和平鋪方式可通過background-position和background-repeadr屬性指定。注意:筆者設置背景圖一般直接使用border-image,該屬性缺省是缺省是進行平鋪和拉伸的。

**

九宮格(border-image,border-width)

**
用于有邊框分割的圖像,圖像可縮放和平鋪其中的每個部分。一個本元素可將圖片分成9個區域,四個角區域是不會變化,其他5個區域按照特定的方式進行變化。效果如下圖:

使用border-image和border-width屬性,語法如下:

QLabel#label_6 {
border-image:url(“E:/111.jpg”) 18 16 15 14 repeat repeat;
border-width:18 16 15 14;
}
berder-image: url [top left bottomright [repeat|no-repeat repeate|no-repeat];

berder-width: top left bottom right;
技巧:這里筆者提供一個小技巧,可先僅使用border-image: url top leftbottom right來確認邊界,如下表的label_2。

**

示例:QLabel使用九宮格

**
效果

**

漸變色(Gradient)

**
線性漸變(qlineargradient):兩點連成的線,線上設置不同顏色,位置范圍[0,1],參考示例。
圓心輻射漸變(qradialgradient):從圓心開始向外輻射,圓心屬性為cx,cy,半徑為radius,fx是stop為0時相對半徑范圍的位置,參考示例。
圓心角度漸變(qconicalgradient):從圓心開始,以x軸為0°逆時鐘轉,圓心屬性為cx,cy,
示例:QPushButton使用qlineargradient線性漸變色

QPushButton#pushButton_3 {background: qlineargradient( x1:0, y1:0,x2:1, y2:1,stop:0 rgba(0, 0, 0, 255),stop:0.5 rgba(0,0, 0, 0),stop:1 rgba(255, 255, 255, 255)); }

**

示例:QPushButton使用qradialgradient圓心輻射漸變色

**

QPushButton#pushButton_4 {background: qradialgradient( cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0 rgba(0, 0, 0, 255), stop:0.5 rgba(0, 0, 0, 0),stop:1 rgba(255, 255, 255, 255)) }

QPushButton#pushButton_6 {background: qradialgradient( cx:0.5, cy:0.5, radius:0.5, fx:1.0, fy:0.0, stop:0 rgba(0, 0, 0, 255), stop:0.5 rgba(0, 0, 0, 0),stop:1 rgba(255, 255, 255, 255)) }


**

示例:QPushButton使用qconicalgradient圓心角度漸變

**

QPushButton#pushButton_5 {background:qconicalgradient( cx:0.5, cy:0.5, angle:0, stop:0 rgba(255, 0, 0, 255), stop:0.25 rgba(0, 255, 0, 255), stop:0.5 rgba(0, 0, 255, 255), stop:0.75 rgba(0, 0, 0, 0), stop:1.0 rgba(0, 0, 0, 255)); }

QPushButton#pushButton_7 {background:qconicalgradient( cx:0.4, cy:0.4, angle:45, stop:0 rgba(255, 0, 0, 255), stop:0.25 rgba(0, 255, 0, 255), stop:0.5 rgba(0, 0, 255, 255), stop:0.75 rgba(0, 0, 0, 0), stop:1.0 rgba(0, 0, 0, 255)); }

總結

以上是生活随笔為你收集整理的qss样式表笔记大全(一):qss名词解析(包含相关示例)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。