天天看點

偷偷學習qt 樣式,然後寫出驚豔所有人的界面QT樣式表

QT樣式表

 qt樣式表主要受到css的啟發,通過調用QWidget:: setStyleSheet() 或 QApplication::setStyleSheet()來設定樣式,也可以在界面的樣式表中直接填寫。

盒子模型(the Box Model)

 學習樣式之前我們要先了解盒子模型,也是最基本的樣式:

  • content  為最内部的矩形,通常是繪制文子、圖檔的地方。
  • padding 負責指定填充操作,主要是視窗部件内容,與邊緣線(border)之間的空隙,它可以用top 、right、bottom、left 設定它的大小。
  • border 認為是視窗的外邊框、你可把它當成門框。
  • margin 最外邊的矩形,主要負責邊緣區域,與視窗部分的距離。

如果沒有指定它們四個,預設是4個重合在一起。

偷偷學習qt 樣式,然後寫出驚豔所有人的界面QT樣式表

 我們來使用最簡單布局,看看效果。

偷偷學習qt 樣式,然後寫出驚豔所有人的界面QT樣式表

 對應樣式表:

QLineEdit
{
	border:5px solid gray;
	border-radius: 10px;
	padding: 10 10 10 20px;
	background: yellow;
    selection-background-color: blue;
}
           

這裡先可以不要了解其它的東西,後面會有對應表,上圖中我們選中的字型,就是content 内容,padding 部分就是 參數上,右,底,左的方式,簡單記住順時針方式。border,就是上面灰色部分,我們可以修改 padding最後一個參數為30,看看效果。

偷偷學習qt 樣式,然後寫出驚豔所有人的界面QT樣式表

我們可以看到明顯的向右移動内容。這下有關盒子模型基本都了解了吧,

QSS基本寫法:

selector {property: value}
           

 舉例:

QLineEdit
{
	background:yellow;
}
           

多個選擇器可以并列使用,它們之間用逗号隔開。

QPushButton,QLineEdit, QComboBox{ color: red }
           

如果是指定莫個選擇器中的單獨一個控件:

QLineEdit#lineEdit
{
	background:yellow;
}
           

其中 lineEdit 是對應的一個對象,我們常用# 加對象名字。

對應狀态:

selector:status {property: value}
           

舉例,當滑鼠移動button上時候,顔色變成紅色:

QPushButton:hover
{
    color:red;
}
           

子控件,當控件裡面有子控件可以這樣用:

QComboBox::drop-down
{
    
}
           

下面是常用的屬性表:

屬性 說明
background 在一個聲明中設定所有的背景屬性
background-color 設定元素的背景顔色。
background-image 用于背部圖檔,可用于background-color添加透明度,QFrame{background-image: url(:/images/xxx.png);  }
background-repeat

無論是否指定重複的填充背景圖檔,用于盒模式,在沒有指定的時候會(x,y)方向開始重複,使用方式

background-repeat:repeat-y;  延Y的背景圖檔。

background-position 在盒子模型中指定位置圖檔的開始,background-position:bottom left; 顯示在左下角開始顯示
background-attachment 描述背景圖檔是否在QAbstractScrollArea 的區域跟滾動條滾動,fixed是圖檔不跟滾動條
background-clip 規定背景的繪制區域。
background-origin 規定背景圖檔的定位區域。
background-size 規定背景圖檔的尺寸。

常見的border 屬性:

border 設定部件的外框線
border-top 簡單設計部件上部的外框線
border-right  簡單設計部件右部的外框線
border-bottom 簡單設計部件底部的外框線
border-left 簡單設計部件左部的外框線
border-color 設計部件外框線的顔色
border-top-color 設計部件上部的外框線顔色
border-right -color 設計部件右部的外框線顔色
border-bottom-color 設計部件底部的外框線顔色
border-left-color 設計部件左部的外框線顔色
border-image 設定4個角位置的image
border-radius 外框線的角度
border-top-left-radius 左上角的弧度
border-top-right-radius 右上角的弧度
border-bottom-left-radius 左下角的弧度
border-bottom-right-radius 右下角的弧度
border-style 設定四條邊框的樣式。
border- top-style 這裡top 可以寫成 left bottom right,表示對應部分的樣式
border-width 設定邊框的寬度值

常用的font屬性:

font 在一個聲明中設定所有字型屬性。
font-family 字型集
font-size 文本字型大小
font-style 文本樣式
font-weight 文本字型的磅數

目前暫時記錄到這裡,後期有時間給大家繼續更新,qt樣式,讓我們寫出來更加漂亮的界面。

繼續閱讀