赞
踩
在文档的Customizing Qt Widgets Using Style Sheets的The Box Model章节介绍了盒模型
⼀个遵守盒模型的控件,由下述⼏个部分构成:
Content
:,存放控件内容,如包含的⽂本/图标等
Padding
:内边距,边框和内容之间的距离
Border
:控件的边框
Margin
:外边距,边框到控件geometry
返回的矩形边界的距离
默认情况下,外边距,内边距,边框宽度都是0
可以通过⼀些QSS属性来设置上述的边距和边框的样式
margin
:设置四个⽅向的外边距,复合属性,可以拆成四个属性
margin-left, margin-right, margin-top, margin-bottom
margin: 10px
:四个方向都是10px的外边框margin: 10px 20px
:上下是10px,左右是20pxmargin: 10px 20px 30px 40px
:上右下左(顺时针)padding
:设置四个⽅向的内边距,复合属性,也可以像margin
一样拆分成四个属性border-style
:设置边框样式border-width
:边框的粗细border-color
:边框的颜⾊border
:复合属性,相当于border-style + border-width + border-color
示例:
QString style = "QLabel { border: 20px dashed green; padding-left: 50px; }";
a.setStyleSheet(style);
font-size
:设置⽂字⼤⼩border-radius
:设置圆⻆矩形
background-color
:设置背景颜⾊QPushButton {
font-size: 20px;
border: 2px solid #8f8f91;
border-radius: 15px;
background-color: #dadbde;
}
QPushButton:pressed {
background-color: #f6f7fa;
}
::indicator
:⼦控件选择器,选中checkbox
中的对钩部分:hover
:伪类选择器,选中⿏标移动上去的状态:pressed
:伪类选择器,选中⿏标按下的状态:checked
:伪类选择器,选中checkbox
被选中的状态:unchecked
:伪类选择器,选中checkbox
未被选中的状态width
:设置⼦控件宽度,对于普通控件⽆效(普通控件使⽤geometry
⽅式设定尺⼨)height
:设置⼦控件⾼度,对于普通控件⽆效(普通控件使⽤geometry
⽅式设定尺⼨)image
:设置⼦控件的图⽚
QSpinBox
,QComboBox
等可以使⽤这个属性来设置⼦控件的图⽚::indicator
:⼦控件选择器,选中RadioButton
中的对钩部分:hover
:伪类选择器,选中⿏标移动上去的状态:pressed
:伪类选择器,选中⿏标按下的状态:checked
:伪类选择器,选中checkbox
被选中的状态:unchecked
:伪类选择器,选中checkbox
未被选中的状态width
:设置⼦控件宽度,对于普通控件⽆效(普通控件使⽤geometry
⽅式设定尺⼨)height
:设置⼦控件⾼度,对于普通控件⽆效(普通控件使⽤geometry
⽅式设定尺⼨)image
:设置⼦控件的图⽚
QSpinBox
,QComboBox
等可以使⽤这个属性来设置⼦控件的图⽚border-width
:设置边框宽度border-radius
:设置边框圆⻆border-color
:设置边框颜⾊border-style
:设置边框⻛格padding
:设置内边距color
:设置⽂字颜⾊background
:设置背景颜⾊selection-background-color
:设置选中⽂字的背景颜⾊selection-color
:设置选中⽂字的⽂本颜⾊QLineEdit {
border-width: 1px;
border-radius: 10px;
border-color: rgb(58, 58, 58);
border-style: inset;
padding: 0 8px;
color: rgb(255, 255, 255);
background:rgb(100, 100, 100);
selection-background-color: rgb(187, 187, 187);
selection-color: rgb(60, 63, 65);
}
::item
:选中QListView
中的具体条⽬:hover
:选中⿏标悬停的条⽬selected
:选中某个被选中的条⽬background
:设置背景颜⾊border
:设置边框qlineargradient
:设置渐变⾊,有6个参数
x1, y1
:标注起点x2, y2
:标注终点stop0, stop1
:描述两个颜色,渐变过程是从stop0
往stop1
进行渐变的QListView::item:hover {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #FAFBFE, stop: 1 #DCDEF1);
}
QListView::item:selected {
border: 1px solid #6a6ea9;
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #6a6ea9, stop: 1 #888dd9);
}
QMenuBar::item
:选中菜单栏中的元素QMenuBar::item:selected
:选中菜单来中的被选中的元素QMenuBar::item:pressed
:选中菜单栏中的⿏标点击的元素QMenu::item
:选中菜单中的元素QMenu::item:selected
:选中菜单中的被选中的元素QMenu::separator
:选中菜单中的分割线QMenuBar { background-color: #f0f0f0; spacing: 5px; } QMenuBar::item { border-radius: 10px; padding: 3px 10px; background-color: rgb(255, 250, 210); } QMenuBar::item:selected { background-color: rgb(170, 85, 0); } QMenu:item { border: 2px solid transparent; padding: 2px 10px; } QMenu::item:selected { border: 2px solid red; } QMenu::separator { height: 2px; background-color: green; margin: 0 5px; }
QWidget
顶层窗口设置背景图,如果直接给顶层窗口设置背景会失效QWidget
之下,其余控件之上,套一个QFrame
控件,将背景设在QFrame
上Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。