QT樣式表
qt樣式表主要受到css的啟發,通過調用QWidget:: setStyleSheet() 或 QApplication::setStyleSheet()來設定樣式,也可以在界面的樣式表中直接填寫。
盒子模型(the Box Model)
學習樣式之前我們要先了解盒子模型,也是最基本的樣式:
- content 為最内部的矩形,通常是繪制文子、圖檔的地方。
- padding 負責指定填充操作,主要是視窗部件内容,與邊緣線(border)之間的空隙,它可以用top 、right、bottom、left 設定它的大小。
- border 認為是視窗的外邊框、你可把它當成門框。
- margin 最外邊的矩形,主要負責邊緣區域,與視窗部分的距離。
如果沒有指定它們四個,預設是4個重合在一起。
我們來使用最簡單布局,看看效果。
對應樣式表:
QLineEdit
{
border:5px solid gray;
border-radius: 10px;
padding: 10 10 10 20px;
background: yellow;
selection-background-color: blue;
}
這裡先可以不要了解其它的東西,後面會有對應表,上圖中我們選中的字型,就是content 内容,padding 部分就是 參數上,右,底,左的方式,簡單記住順時針方式。border,就是上面灰色部分,我們可以修改 padding最後一個參數為30,看看效果。
我們可以看到明顯的向右移動内容。這下有關盒子模型基本都了解了吧,
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樣式,讓我們寫出來更加漂亮的界面。