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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

QSS(Qt样式表)概念

發(fā)布時(shí)間:2023/12/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QSS(Qt样式表)概念 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Qt樣式表是一個(gè)可以自定義部件外觀的十分強(qiáng)大的機(jī)制,除了QStyle更改的樣式,其他的都可以由QSS修改。由于受到Html的CSS啟發(fā),所以叫QSS。

  • 代碼添加樣式表
  • ui界面上添加樣式表

代碼添加樣式表:

setStyleSheet()添加樣式表

在ui界面中添加兩個(gè)控件:pushButton 和lineEdit?

?修改兩個(gè)部件的背景顏色:

ui->pushButton->setStyleSheet("background:blue");ui->lineEdit->setStyleSheet("background:yellow");

?修改同一類控件的方法:

格式為:? ?控件類名 {? ?內(nèi)容 ? }

QPusgButton{background:blue} QLabel{background:yellow}

ui界面中的使用:

右鍵點(diǎn)擊對(duì)象,點(diǎn)擊改變樣式表

?可以根據(jù)上面的選項(xiàng)添加內(nèi)容:


?Qt樣式表的語(yǔ)法:

一:樣式規(guī)則

每個(gè)樣式由選擇器聲明組成

  • 選擇器可以有多個(gè)用,隔開
  • 樣式表可以不區(qū)分大小寫:? color? ?Color? COLOR 都可以使用,但類名、對(duì)象名和Qt屬性名區(qū)分大小寫
  • 樣式中的屬性用;隔開

QPushButton {color:red}

  • QPushButton為選擇器
  • {color:red} 聲明
  • color為屬性
  • red為值
QPushButton { color:red//等價(jià)于Color:red COlor:rad 例如color,background等不區(qū)分大小寫 }QPushButton,QLabel,QLineEdit//多個(gè)選擇器用,隔開 { color:red;//多個(gè)的話用;隔開 background-color:white }

二:選擇器的類型?

選擇器示例說(shuō)明
通用選擇器*匹配所有部件
類型選擇器QPushButton匹配所有QPushButton實(shí)例和它的所有子類
屬性選擇器QPushButton[flat="false"]匹配QPushButton的屬性flat為false的實(shí)例
類選擇器.QPushButton匹配所有QPushButton實(shí)例,但不包含它的子類
ID選擇器QPushButton#button匹配QPushButton中名為button的實(shí)例
后代選擇器QDialog QPushButton匹配所有QPushButton實(shí)例,但必須為QDialog的子孫部件
孩子選擇器QDialog >QPushButton匹配所有QPushButton實(shí)例,但必須為QDialog的直接子部件

三:子控件

QComboBox::drop-down{.....}

  • drop-down 代表上下箭頭
  • 使用::來(lái)連接子控件
在幫助文檔中搜索? Qt Style Sheets Reference? 搜索更多子控件

四:偽狀態(tài)

常用的偽狀態(tài):

:checked該項(xiàng)目已選中
:unchecked該項(xiàng)目未選中
:disabled該項(xiàng)目已禁用
:editableQComboBox可編輯
:edit-focus具有編輯焦點(diǎn)
:focus輸入焦點(diǎn)
:hover鼠標(biāo)懸停在項(xiàng)目上
:read-only只讀
:pressed鼠標(biāo)按下
  • 偽狀態(tài):在放在選擇器之后用:隔開
  • 偽狀態(tài)可以使用? !來(lái)表示否定
  • 可以使用多個(gè)偽狀態(tài)(與的效果)? ?:hover:pressed()
  • 用,連接可以達(dá)到(或的效果)
  • 偽狀態(tài)可以和子控件一起使用
QPushButton:hover//鼠標(biāo)懸停 { color:red } QPushButton:!hover//鼠標(biāo)不懸停 { color:red } QPushButton:hover:preassed//鼠標(biāo)懸停且鼠標(biāo)點(diǎn)擊 { color:red } QPushButton:hover,QPushButton:pressed//鼠標(biāo)懸停或鼠標(biāo)點(diǎn)擊 { color:red } QComboBox::drop-down:pressed//子控件和鼠標(biāo)懸停 { color:red }

五:沖突的解決

解決方法為:

  • 特殊的選擇器優(yōu)先
  • 有偽裝比沒偽裝優(yōu)先
  • 特殊性相同,后出現(xiàn)的優(yōu)先
  • 當(dāng)父類和本身都有樣式表并有沖突時(shí),優(yōu)先使用本身的樣式表

?六:繼承關(guān)系

使用樣式表時(shí),部件并不會(huì)自動(dòng)從父部件繼承字體和顏色設(shè)置

想要繼承到子部件需要這樣設(shè)置樣式表。

假設(shè) QPushButton是QGroupBox的一個(gè)子部件//這樣的話顏色會(huì)設(shè)置到所有子部件 //注意*前面有一個(gè)空格 QGroupBox,QGroupBox * { color:red; }

?七:設(shè)置QObject屬性

在Qt4.3之后,任何可設(shè)計(jì)的Q_PROPERTY都可以使用"qproperty-屬性名稱”語(yǔ)法來(lái)設(shè)計(jì)樣式表。

QPushButton{qproperty-pixmap:url(.....)} Qlabel{qproperty-iconSize:20px 20px;}

總結(jié)

以上是生活随笔為你收集整理的QSS(Qt样式表)概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。