【QT】史上最全最详细的QSS样式表用法及用例说明

news2024/11/27 12:41:45

目录

  • 1. Qt样式表语法
  • 2. 选择器
    • 2.1 可设置样式的部件
    • 2.2 选择器类型
    • 2.3 子控件
    • 2.4 伪状态
  • 3. 属性列表
  • 4. 冲突解决
  • 5. qss示例

1. Qt样式表语法

Qt样式表支持各种属性、伪状态和子控件,可以自定义小部件的外观。

        selector { attribute: value }

        selector:选择器,如 QWidget、QPushButton、QGroupBox等

        attribute:属性,如color、background-color、border、padding等

        value:值,与属性对应

2. 选择器

2.1 可设置样式的部件

Widget如何设置
QWidget只支持background, background-clipbackground-origin属性。
如果你继承于QWidget,那么你需要为你自定义的QWidget提供一个paintEvent,如下所示:
在这里插入图片描述
如果没有进行QSS样式表设置,上面的代码就是一个空操作。
注意:请确保自定义小部件定义了Q_OBJECT宏。
QAbstractScrollArea支持box model
在这里插入图片描述
margin、border-width和padding属性都默认为0。在这种情况下,所有四个矩形(边距、边框、填充和内容)都完全重合。
QCheckBox支持盒子模型。检查指示器可以使用::indicator子控件样式化。默认情况下,指示器被放置在左边。spacing属性指定检查指示器和文本之间的间距。
QColumnView可以使用image属性进行样式化。箭头指示器可以使用 ::left-arrow子控件和 ::right-arrow 子控件进行样式化
QComboBoxcombobox周围的框架可以使用box model设置样式。下拉按钮可以使用::drop-down子控件设置样式。默认情况下,下拉按钮放置在小部件的内边距矩形的右边。下拉按钮内的箭头标记可以使用::down-arrow子控件设置样式。默认情况下,箭头放置在下拉子控件的内容矩形的中心。
QDateEdit看QSpinBox
QDateTimeEdit看QSpinBox
QDialogQDialog继承于QWidget,看QWidget
QDialogButtonBox可以使用button-layout属性更改按钮的布局。
QDockWidget停靠时支持标题栏和标题栏按钮的样式化。可以使用border属性对dock小部件边框进行样式化。::title子控件可用于自定义标题栏。关闭和浮动按钮分别使用::close按钮和::float按钮相对于::title子控件进行定位。当标题栏垂直时,设置:vertical伪类。另外,根据QDockWidget::DockWidgetFeature,设置了:closable:floatable:movable伪状态。
QDoubleSpinBox看QSpinBox
QFrame支持box model。从4.3开始,在QLabel上设置样式表会自动将QFrame:: framstyle属性设置为QFrame::StyledPanel
QGroupBox支持box model。标题可以使用::title子控件设置样式。默认情况下,标题的放置取决于QGroupBox::textAlignment。在可选QGroupBox的情况下,标题包括检查指示器。指示器使用::indicator子控件设置样式。spacing属性可以用来控制文本和指示符之间的间距。
QHeaderView支持box model。头视图的部分使用::section子控件进行样式化。子控件部分支持:middle:first:last:only-one:next-selected:previous-selected:selected:checked伪状态。排序指示器可以使用::up-arrow::down-arrow 子控件进行样式化。
QLabel支持box model。不支持:hover伪状态。从4.3开始,在QLabel上设置样式表会自动将QFrame:: framstyle属性设置为QFrame::StyledPanel
QLineEdit支持box model。选中项的颜色和背景分别使用selection-colorselection-background-color设置样式。可以使用lineedit-password-character属性设置密码字符的样式。可以使用lineedit-password-mask-delay更改密码掩码延迟。
QListView支持box model。启用交替行颜色后,可以使用属性alternative -background-color设置交替行颜色的样式。选中项的颜色和背景分别使用selection-colorselection-background-color设置样式。选择行为由show-decoration-selected属性控制。使用::item子控件对QListView中的项进行更细的控制。
QListWidget看QListView
QMainWindow支持分隔符的样式化。使用QDockWidget时,QMainWindow中的分隔符使用::separator子控件进行样式化。
QMenu单个项目使用::item子控件设置样式。除了通常支持的伪状态外,item子控件还支持:selected:default:exclusive:non-exclusive伪状态。可选菜单项的指示符使用::indicator子控件设置样式。分隔符使用::separator子控件设置样式。对于子菜单项,箭头标记使用::right-arrow::left-arrow设置样式。使用::scroller对滚动条进行样式化。撕裂式使用::tearoff
QMenuBarspacing属性指定菜单项之间的间距。使用::item子控件对单个项进行样式化。
QMessageBoxmessage - box-text-interaction-flags属性可用于更改与消息框中的文本的交互。
QProgressBar进度条的块可以使用::chunk子控件设置样式。该块显示在小部件的内容矩形上。如果进度条显示文本,请使用text-align属性来定位文本。不确定进度条有:Indeterminate伪状态设置。
QPushButton支持:default:flat:checked伪状态。从5.15开始,icon属性可以被设置为覆盖按钮图标。对于带有菜单的QPushButton,菜单指示器使用::menu-indicator子控件样式化。可检查按钮的外观可以使用:open:closed伪状态定制。
警告:如果你只在一个QPushButton上设置了背景色,背景可能不会出现,除非你设置了border属性为某个值。这是因为,在默认情况下,QPushButton绘制了一个与背景色完全重叠的本机边框。例如:
在这里插入图片描述
QRadioButton检查指示器可以使用::indicator子控件样式化。默认情况下,指示器被放置在小部件Contents矩形的左上角。spacing属性指定检查指示器和文本之间的间距。
QScrollBar窗口组件的内容矩形被认为是滑块移动的槽。QScrollBar的范围(即宽度或高度,取决于方向)分别使用widthheight属性设置。要确定方向,可以使用:horizontal:vertical伪状态。可以使用::handle子控件设置滑块的样式。设置min-widthmin-height可以根据方向为滑块提供尺寸约束。
::add-line子控件可用于设置按钮的样式以添加行。默认情况下,add-line子控件放置在小部件边框矩形的右上角,取决于::right-arrow::down-arrow. 。默认情况下,箭头放置在添加行子控件的Contents矩形的中心。
:: subline子控件可用于设置按钮的样式以减去一行。默认情况下,subline子控件放置在小部件边框矩形的右下角,取决于::left-arrow::up-arrow。默认情况下,箭头放置在子行子控件的Contents矩形的中心。:: subpage子控件可用于设置滑块减去页面的区域的样式。::add-page子控件可用于设置添加页面的滑块区域的样式。
QSizeGrip支持 widthheightimage 属性。
QSlider对于水平滑动,必须提供 min-widthheight属性。对于垂直滑块,必须提供min-height和width属性。滑块的凹槽采用::groove样式。默认情况下,凹槽位于小部件的内容矩形中。滑块的头部使用::handle子控件设置样式。子控件在槽子控件的内容矩形中移动。
QSpinBox向上按钮和箭头可以使用::up-button::up-arrow子控件设置样式。默认情况下,向上按钮放置在小部件的内边距矩形的右上角。如果没有明确的尺寸,它将占据其参考矩形高度的一半。向上箭头放置在向上按钮的内容矩形的中心。可以使用::down-button::down-arrow子控件为down按钮和箭头设置样式。默认情况下,down按钮放置在小部件的内边距矩形的右下角。如果没有明确的尺寸,它将占据其参考矩形高度的一半。底部箭头放置在底部按钮的内容矩形的中心。
QSplitter分割器的句柄使用::handle子控件进行样式化
QStatusBar只支持background属性。可以使用::item子控件对单个项的框架进行样式化。
QTabBar单个选项卡可以使用::tab子控件设置样式。选项卡支持:only-one:first:last:middle:previous--selected:next-selected:selected等伪状态。:top、:left、:right、:bottom伪状态取决于选项卡的方向。选择状态的重叠制表符可以使用负边距或绝对位置模式创建。QTabBar的撕裂指示器使用::tear子控件进行样式设置。QTabBar为它的滚动条使用了两个QToolButton,可以使用QTabBar QToolButton选择器设置样式。要指定滚动按钮的宽度,可以使用::scroller子控件。QTabBar中选项卡的对齐方式使用alignment属性设置样式。要更改QTabBar在QTabWidget中的位置,请使用tab-bar子控件(并设置subcontrol-position)。
QTabWidget选项卡部件的框架使用::pane子控件设置样式。左角和右角分别使用::left-corner::right-corner设置样式。tab bar的位置由::tab-bar子控件控制。默认情况下,子控件具有QTabWidget在QWindowsStyle中的位置。要将QTabBar放在中间,请设置tab-bar子控件的subcontrol-position。:top、:left、:right、:bottom伪状态取决于选项卡的方向。.
QTableView启用交替行颜色后,可以使用属性alternative-background-color设置交替行颜色的样式。选中项的颜色和背景分别使用selection-colorselection-background-color设置样式。QTableView中的拐角部件是作为QAbstractButton实现的,可以使用“QTableView QTableCornerButton::section”选择器设置样式。
警告:如果你只在QTableCornerButton上设置了背景色,背景可能不会出现,除非你设置border属性为某个值。这是因为,在默认情况下,QTableCornerButton绘制了一个完全重叠背景色的本机边框。网格的颜色可以使用gridline-color属性指定。
QTextEdit所选文本的颜色和背景分别使用selection-colorselection-background-color进行样式化。.
QTimeEdit看QSpinBox
QToolBar:top, :left, :right, :bottom伪状态取决于工具栏所在的分组区域。:first,:last,:middle,:only-one伪状态指示工具栏在一个行组中的位置(参见QStyleOptionToolBar::positionWithinLine)。QToolBar的分隔符使用::separator子控件设置样式。手柄(移动工具栏)使用::handle子控件设置样式。
QToolButton如果QToolButton有菜单,则可以使用::menu-indicator子控件来设置指示器的样式。默认情况下,菜单指示符位于widget的内边距矩形的右下角。如果QToolButton处于QToolButton::MenuButtonPopup模式,则使用::menu-button子控件来绘制菜单按钮。::menu-arrow子控件用于在菜单按钮内绘制菜单箭头。默认情况下,它位于menu-button子控件内容矩形的中心。当QToolButton显示箭头时,将使用::up-arrow、::down-arrow、::left-arrow和::right-arrow子控件。
警告:如果你只在QToolButton上设置了背景色,背景将不会出现,除非你设置border属性为某个值。这是因为,在默认情况下,QToolButton绘制了一个与背景颜色完全重叠的本机边框。例如:
在这里插入图片描述
QToolBox可以使用::tab子控件对单个选项卡进行样式化。选项卡支持:only-one、:first、:last、:middle、:previous-selected、:next-selected、:selected伪状态。
QToolTipopacity属性控制工具提示的不透明度。
QTreeView当设置交替行颜色 enabled后,可以使用属性alternative -background-color设置交替行颜色的样式。选中项的颜色和背景分别使用selection-color和selection-background-color设置样式。选择行为由show-decoration-selected属性控制。树视图的分支可以使用::branch子控件设置样式。::branch子控制支持:open、:closed、:has-sibling和:has-children伪状态。使用::item子控件对QTreeView中的项进行更细粒度的控制。
QTreeWidget看QTreeView

2.2 选择器类型

选择器示例说明
通用选择器*匹配所有部件
类型选择器QPushButton匹配所有QPushButton示例及它的所有子类
属性选择器QPushButton[flat = “false”]匹配QPushButton的属性flat为false的示例
类选择器.QPushButton匹配所有QPushButton示例,但不包括它的子类
ID选择器QPushButton#myButton匹配所有QPushButton中myButton对象的实例
后代选择器QDialog QPushButton匹配所有QPushButton实例,它们必须是QDialog的子孙部件
孩子选择器QDialog>QPushButton匹配所有QPushButton实例,它们必须是QDialog直系孩子部件

2.3 子控件

子控件是双冒号"::"
对于一些复杂的部件修改样式,可能需要访问它们的子部件,如QComboBox的下拉按钮,QSpinBox的向上、向下箭头灯。
如:下拉按钮设置图片属性:QComboBox::drop-down{image:url(dropdown.png)}

子控件描述
::add-line在QScrollBar中跳转下一行的按钮
::add-page在QScrollBar中滑动条和add-line之间的区域
::branch在QTreeView中的分支指示器
::chunk在QProgressBar中的进度块
::close-button在QDockWidget或QTabBar选项卡的关闭按钮
::corner在QAbstractScrollArea中两个滚动条之间的角落
::down-arrow在QComboBox、QHeaderView(排序指示器)、QScrollBar或QSpinBox的向下箭头
::down-button在QScrollBar或QSpinBox中的向下按钮
::drop-down在QComboBox中的下拉框
::float-button在QDockWidget中的浮动按钮
::groove在QSlider中的滑动槽
::indicator在QAbstractItemVIew、QCheckBox、QRadioButton、可选中的菜单项或可选中的QGroupBox中的指示器
::handle在QScrollBar、QSplitter和QSlider中的操作条(滑动条)
::icon在QAbstractItemVIew或QMenu中的图标
::item在QAbstractItemVIew、QMenuBar、QMenu或QStatuBar中的一项
::left-arrow在QScrollBar中的向左箭头
::left-corner在QTabWidget中的左上角
::menu-arrow带有菜单的QToolButton中的箭头
::menu-button在QToolButton中的菜单按钮
::menu-indicator在QPushButton中的菜单指示器
::right-arrow在QMenu或QScrollBar中的向右箭头
::pane在QTabWidget中的边或框
::right-corner在QTabWidget中的右上角
::scroller在QMenu或QTabBar中的滚动条
::section在QHeaderView中的区块
::separator在QMenu或QMainWIndow中分隔条
::sub-line在QScrollBar中跳转上一行的按钮
::sub-page在QScrollBar中滑动条和sub-line之间的区域
::tab在QTabBar或QToolBox中选项卡
::tab-bar在QTabWidget中的选项卡栏
::tear在QTabBar中的tear指示器
::tearoff在QMenu中的tear-off指示器
::text在QAbstractItemView中的文本
::title在QGroupBox或QDockWidget中的标题栏
::up-arrow在QComboBox、QHeaderView(排序指示器)、QScrollBar或QSpinBox的向上箭头
::up-button在QScrollBar或QSpinBox中的向上按钮

2.4 伪状态

伪状态使用单冒号":"

  1. 选择器可以使用状态来限制在部件的指定状态上的应用。伪状态在选择器之后,用冒号隔离。如:
    鼠标悬停在按钮上时其按钮的颜色为白色:QPushButton:hover{color:white}
    鼠标不悬停在按钮上时其按钮的颜色为l蓝色(!表否定):QPushButton:!hover{color:blue}
  2. 伪状态可多个连用,达到逻辑与效果。如:
    鼠标悬停在一个被选中的QCheckBox部件上时才应用规则:QCheckBox:hover:checked{color:white}
  3. 伪状态可通过逗号达到逻辑或效果。如:QCheckBox:hover,checked{color:white}
  4. 伪状态和子部件联合使用。如:QComboBox::drop-down:hover{image:url(dropdown_bright.png)}
伪状态描述
:active此状态在小部件驻留在活动窗口时设置
:adjoins-item此状态在QTreeView的::branch与一个item相邻时设置
:alternate当QAbstractItemView::alternatingRowColors()设置为真时,在绘制QAbstractItemView的行时,为每个交替行设置此状态
:bottom此item位于底部。例如,QTabBar有位于底部的选项卡
:checked此item被选中。例如,QAbstractButton的checked状态
:closable此item可以被关闭。例如,QDockWidget的QDockWidget::DockWidgetClosable特性开启时
:closed此item处于关闭状态。例如,QTreeView中未展开的item
:default此item的默认状态。例如,一个default的QPushButton或QMenu中的一个默认动作
:disabled此item被禁用时的状态
:editable如QComboBox是可编辑的
:edit-focus此item具有编辑焦点(参考QStyle::State_HasEditFocus)。此状态仅对Qt扩展应用程序可用
:enabled此item已启用
:exclusive此item是一个独占项组的一部分。例如,独占QActionGroup中的菜单项
:first此item是列表中的第一项。例如,QTabBar中的第一个选项卡
:flat此item是平的。例如,一个扁平的QPushButton
:floatable此item可以浮动。例如,QDockWidget的QDockWidget::DockWidgetFloatable的特性开启时
:focus此item具有输入焦点
:has-children此item具有子对象。例如,QTreeView中具有子项的项
:has-sibling此item具有兄弟对象。例如,QTreeView中与之相邻的项
:horizontal此item处于水平方向
:hover鼠标悬浮在此item上
:indeterminate此item处于不确定状态。例如,QCheckBox或QRadioButton被部分选中
:last此item是列表中的最后一项。例如,QTabBar中的最后一个选项卡
:left此item位于左侧。例如,QTabBar有位于左侧的选项卡
:maximized此item处于最大化状态。例如,一个最大化的QMdiSubWindow
:middle此item是列表中的中间一项。例如,一个不在QTabBar中的开头或结尾的选项卡
:minimized此item处于最小化状态。例如,一个最小化的QMdiSubWindow
:movable此item可以被移动。例如, QDockWidget的QDockWidget::DockWidgetMovable特性开启时
:no-frame此item没有边框。例如,没有边框的QSpinBox或QLineEdit
:non-exclusive此item是一个非独占项组的一部分。例如,非独占QActionGroup中的菜单项
:off对可以切换的items,这适用于处于off状态的item
:on对可以切换的items,这适用于处于on状态的widget
:only-one此item是列表中的唯一的一项。例如,一个在QTabBar中单独的选项卡
:open此item处于打开状态。例如,QTreeView中的展开项,或带有菜单的QComboBox或QPushButton
:next-selected此item是列表中的下一个被选中的项。例如,在QTabBar中当前选项卡的下一个要选中的选项卡
:pressed鼠标正在按压在此item上
:previous-selected此item是列表中的上一个被选中的项。例如,在QTabBar中当前选项卡的上一个要选中的选项卡
:read-only此item处于只读或不可编辑状态。例如,一个只读QLineEdit或不可编辑的QComboBox
:right此item位于右侧。例如,QTabBar有位于右侧的选项卡
:selected此item处于选中状态。例如,一个在QTabBar中被选中的选项卡或一个在菜单中被选中的菜单项
:top此item位于顶部。例如,QTabBar有位于顶部的选项卡
:unchecked此item处于未被选中状态
:vertical此item处于垂直方向
:window小部件是一个窗口(例如,一个顶层小部件)

3. 属性列表

QSS官方参考
对于不理解的地方可以参考CSS:CSS参考手册(里面有测试,可以很直观的看到不同属性值的区别)

attribute属性类型描述
alternate-background-colorBrush交替背景色。
在这里插入图片描述
backgroundBackground背景,相当于指定background-color、background-image、background-repeat和background-position。
在这里插入图片描述
background-colorBrush背景颜色,例如:
在这里插入图片描述
background-imageUrl背景图像(图像的半透明部分会被背景颜色穿透)。
在这里插入图片描述
background-repeatRepeat背景图像如何充满背景矩形,如果未指定此属性,背景图像将在两个方向上重复(repeat)。
在这里插入图片描述
background-positionAlignment背景图像在背景原点矩形内的对齐。如果未指定此属性,则对齐方式为左上角。
在这里插入图片描述
background-attachmentAttachment背景图像是否相对于视口进行滚动或固定。默认情况下,背景图像随视口滚动。
在这里插入图片描述
background-clipOrigin规定背景的绘制区域。如果未指定此属性,则默认为border。
在这里插入图片描述
border:背景被裁剪到边框盒
padding:背景被裁剪到内边距框
content:背景被裁剪到内容框
background-originOrigin背景图像相对于什么来定位。如果未指定此属性,则默认为 padding 填充。
padding:背景图像相对于内边距框来定位
border:背景图像相对于边框盒来定位
content:背景图像相对于内容框来定位
在这里插入图片描述
borderBorder设置 4 个边框的样式,按照一下顺序进行设置:border-width,border-style,border-color。
在这里插入图片描述
border-topBorder顶部边框
border-bottomBorder底部边框
border-rightBorder右边边框
border-leftBorder左边边框
border-colorBox Colors边框的颜色。
在这里插入图片描述
border-top-colorBrush边框上边缘颜色
border-bottom-colorBrush边框下边缘颜色
border-right-colorBrush边框右边缘颜色
border-left-colorBrush边框左边缘颜色
border-imageBorder Image填充边框的图像
border-radiusRadius边角的半径,即边角圆弧。
在这里插入图片描述
border-top-left-radiusRadius左上角圆弧
border-top-right-radiusRadius右上角圆弧
border-bottom-right-radiusRadius右下角圆弧
border-bottom-left-radiusRadius左下角圆弧
border-styleBorder Style边框边缘的样式,若未指定默认为none。
在这里插入图片描述
border-top-styleBorder Style边框上边缘的样式
border-bottom-styleBorder Style边框下边缘的样式
border-right-styleBorderStyle边框右边缘的样式
border-left-styleBorderStyle边框左边缘的样式
border-widthBox Lengths边框的宽度。
在这里插入图片描述
border-top-widthBox Lengths上边框的宽度
border-bottom-widthBox Lengths下边框的宽度
border-right-widthBox Lengths右边框的宽度
border-left-widthBox Lengths左边框的宽度
bottomLength在部件边底部其子控件向上的偏移量,即元素与底部边缘的距离。
在这里插入图片描述
topLength在部件边顶部其子控件向下的偏移量,即元素与顶部边缘的距离。
在这里插入图片描述
rightLength在部件右边其子控件向左的偏移量,即元素与右边缘的距离。
在这里插入图片描述
leftLength在部件左边其子控件向右的偏移量,即元素与左边缘的距离。
在这里插入图片描述
button-layoutNumberQDialogButtonBox或QMessageBox中的按钮布局。取值为0 (WinLayout)、1 (MacLayout)、2 (KdeLayout)、3 (GnomeLayout)和5 (AndroidLayout)。如果未指定此属性,它默认为SH_DialogButtonLayout样式提示的当前样式所指定的值。
在这里插入图片描述
colorBrush渲染文本的颜色,默认值为黑色。
在这里插入图片描述
dialogbuttonbox-buttons-have-iconsBooleanQDialogButtonBox中的按钮是否显示图标如果这个属性被设置为1,QDialogButtonBox的按钮显示图标;如果设置为0,则不显示图标。
在这里插入图片描述
fontFont设置字体。相当于指定font-family、font-size、font-style和/或font-weight。
在这里插入图片描述
font-familyString字体类型。
在这里插入图片描述
font-sizeFont Size字体大小。
在这里插入图片描述
font-styleFont Style字体风格(倾斜)。
在这里插入图片描述
font-weightFont Weight字体的粗细。
gridline-color*ColorQTableView中网格线的颜色。如果没有指定此属性,它默认为SH_Table_GridLineColor样式提示的当前样式所指定的值。
在这里插入图片描述
heightLength子部件的高度。如果希望小部件具有固定的高度,请将min-height和max-height设置为相同的值。
在这里插入图片描述
widthLength子控件(在某些情况下是小部件)的宽度。
在这里插入图片描述
iconUrl+所使用的图标,用于具有图标的小部件。目前唯一支持此属性的小部件是QPushButton。
icon-sizeLength小部件中图标的宽度和高度。可以使用此属性设置以下小部件的图标大小:QCheckBox、QListView、QPushButton、QRadioButton、QTabBar、QToolBar、QToolBox、QTreeView。
image*Url+在子控件的内容矩形中绘制图像。image属性接受一个url列表或者一个svg。绘制的实际图像使用与QIcon相同的算法。图像从不放大,但在必要时总是缩小。如果指定了svg,则图像会被缩放为内容矩形的大小。警告:渲染SVG图像需要QIcon SVG插件。
在这里插入图片描述
隐式设置down-button的大小为spindown.png的大小
image-positionAlignment图像位置的对齐方式
lineedit-password-character*NumberQLineEdit密码字符作为Unicode数字。如果没有指定此属性,它默认为SH_LineEdit_PasswordCharacter样式提示的当前样式所指定的值。
在这里插入图片描述
lineedit-password-mask-delay*Number在lineedit-password-character应用到可见字符之前,QLineEdit密码掩码延迟毫秒。如果未指定此属性,它默认为SH_LineEdit_PasswordMaskDelay样式提示的当前样式所指定的值。
在这里插入图片描述
marginBox Lengths设置元素的4个外边距。相当于指定margin-top、margin-right、margin-bottom和margin-left。
在这里插入图片描述
margin-topLength上边距
margin-rightLength右边距
margin-bottomLength下边距
margin-leftLength左边距
max-heightLength小部件或子控件(例如Item)的最大高度。
在这里插入图片描述
max-widthLength小部件或子控件(例如Item)的最大宽度。
在这里插入图片描述
min-heightLength小部件或子控件(例如Item)的最小高度。
在这里插入图片描述
min-widthLength小部件或子控件(例如Item)的最小宽度。
在这里插入图片描述
messagebox-text-interaction-flags*Number消息框中文本的交互行为。可能的值基于Qt::TextInteractionFlags。如果未指定此属性,则默认为SH_MessageBox_TextInteractionFlags样式提示的当前样式所指定的值。
在这里插入图片描述
opacity*Number小部件的不透明度。取值范围为0(透明)~ 255(不透明)。目前,这只支持tooltips。如果未指定此属性,它默认为SH_ToolTipLabel_Opacity样式提示的当前样式指定的值。
在这里插入图片描述
outline边框的轮廓
outline-colorColor轮廓的颜色
outline-offsetLength轮廓与小部件边界的偏移量
outline-style指定用于绘制轮廓的模式
outline-radius在轮廓中添加圆角
outline-bottom-left-radiusRadius轮廓左下角的圆角
outline-bottom-right-radiusRadius轮廓右下角的圆角
outline-top-right-radiusRadius轮廓右上角的圆角
outline-top-left-radiusRadius轮廓左上角的圆角
paddingBox Lengths小部件的填充。相当于指定填充顶部、填充右侧、填充底部和填充左侧。如果未指定此属性,则默认为0。
在这里插入图片描述
padding-topLength顶部填充
padding-rightLength右侧填充
padding-bottomLength底部填充
padding-leftLength左侧填充
paint-alternating-row-colors-for-empty-areaboolQTreeView是否为空区域(即没有项目的区域)绘制交替的行色
posotionrelative | absolute使用左、右、上和下指定的偏移量是相对坐标还是绝对坐标。如果未指定此属性,则默认为relative。
selection-background-color*Brush所选文本或项的背景。如果未设置此属性,则默认值是为调色板palette的Highlight角色设置的值。
在这里插入图片描述
selection-color*Brush所选文本或项的前景。如果未设置此属性,则默认值是为调色板palette的HighlightedText角色设置的值。
在这里插入图片描述
show-decoration-selected*Boolean控制QListView中的选择是覆盖整行还是仅覆盖文本的范围。如果未指定此属性,它默认为SH_ItemView_ShowDecorationSelected样式提示的当前样式指定的值。
在这里插入图片描述
spacing*Length小部件中的内部间距。
在这里插入图片描述
subcontrol-origin*Origin父元素中子控件的起始矩形。如果未指定此属性,则默认为填充。
在这里插入图片描述
subcontrol-position*Alignment子控件在subcontrol-origin指定的原点矩形内的对齐。如果未指定此属性,则默认为依赖于子控件的值。
在这里插入图片描述
titlebar-show-tooltips-on-buttonsbool工具提示是否显示在窗口标题栏按钮上。
widget-animation-duration*Number动画应该持续多长时间(以毫秒为单位)。值等于零意味着动画将被禁用。如果没有指定此属性,它默认为SH_Widget_Animation_Duration样式提示的当前样式指定的值。
在这里插入图片描述
text-alignAlignment小部件内容中的文本和图标的对齐方式。
在这里插入图片描述
text-decorationnone
underline
overline
line-through
附加文本效果
-qt-background-rolePaletteRole基于所选角色的子控件或小部件的背景色。
-qt-style-featureslist要在其上应用特定于qt的样式的CSS属性列表。注意:列表只能包含非基于像素图的属性。

4. 冲突解决

几个样式规则对相同的属性指定不同的值时会产生冲突。如

QPushButton#okButton{color:gray}
QPushButton{color:red}

冲突原则:特殊的选择器优先。此例中QPushButton#okButton代表的是单一对象,而不是一个类的所有实例,所以okButton的文本颜色会是灰色的。同样的有伪状态的比没有伪状态的优先。

5. qss示例

点这里:QSS用例显示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/364580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Gradle 学习笔记(四)构建块基本单元掌握

本篇主要学习 Gradle 构建脚本的三个基本组建成: project 项目task 任务property 属性 我将会重点介绍 Task,因为它是所有基础中的基础, project 的知识更多和实战有关(例如模块化),而 property 本身不过…

新手怎么快速学会并上手SQL语言?收藏版

SQL可以说是程序员、数据库管理员DBA、数据分析师等需要做数据处理和分析岗位最常用的程序语言了。 尤其是一些岗位,工作中并非以数据库为核心,只是偶尔用些数据不需要深度学习,不得不自己去做一些取数的事情,只要学会通过SQL取数…

PS_高低频和中性灰——双曲线

高低频 高低频磨皮:把皮肤分成两个图层,一层是纹理层也就是皮肤的毛孔。 一层是皮肤光滑层没有皮肤细节。 高频”图层为细节层,我们用图章工具修高频 “低频”图层为颜色层,我们用混合画笔修低频 原理:修颜色亮度光影…

用户投稿——详解我了解的 TDengine 以及它所在的时序数据库“战场”

作者:大数据模型本篇文章出自 2022 年“用 TDengine,写 TDengine”征文投稿活动。因为工作的关系,最近几年我接触到过各种国产数据库,唯独对 TDengine 念念不忘。在众多数据库中,TiDB 一枝独秀,OceanBase 出…

渗透中超全的Google hack语法

inurl:Login 将返回url中含有Login的网页intitle:后台登录管理员 将返回含有管理员后台的网页intext:后台登录 将返回含有后台的网页inurl:/admin/login.php 将返回含有admin后台的网页inurl:/phpmyadmin/index.php 将返回含有phpmyadmin后台的网页site:http://baidu.com inur:…

OpenStack手动分布式部署Keystone【Queens版】

目录 Keystone简介 1、登录数据库配置(在controller执行) 1.1登录数据库 1.2数据库里创建keystone 1.3授权对keystone数据库的正确访问 1.4退出数据库 2、数据库导入Keystone表(在controller执行) 2.1安装httpd mod_wsgi 2.2备…

nn.Conv2d与nn.Conv3d介绍

nn.Conv2d 1)输入的维度为: 2)输出的维度为: 其中,Cout是由参数out_channels((int) – 卷积产生的通道数)决定。 Hout和Wout计算如下: 3)在池化层的计算: …

Windows服务器使用cwRsync实现同步

软件分为客户端和服务器端 实现目的:将服务端C:\tongbu目录中的文件定时同步到客户端C:\target目录中去。 cwRsyncServer(服务端)配置步骤 1.双击运行wRsyncServer_4.1.0_Installer.exe。 2.这里创建的账户是操作系统的,创建的…

canvas初体验

canvas介绍 Canvas 最初由Apple于2004 年引入,用于Mac OS X WebKit组件,为仪表板小部件和Safari浏览器等应用程序提供支持。后来,它被Gecko内核的浏览器(尤其是Mozilla Firefox),Opera和Chrome实现&#x…

webpack实现静态资源缓存

一、配置缓存 我们使用 webpack 来打包我们的模块化后的应用程序,webpack 会生成一个可部署的/dist目录,然后把打包后的内容放置在此目录中。只要/dist目录中的内容部署到 server 上,client(通常是浏览器)就能够访问此…

OKR之剑·总结篇01:如何开好一场OKR复盘会

作者:vivo 互联网平台产品研发团队 本文是《OKR 之剑》系列之总结第 1 篇—— OKR复盘是OKR生命周期中的重要环节,起着承上启下的重要作用。本篇将和你一起探讨什么是OKR复盘、为什么要进行OKR复盘,接着向你展示团队在OKR复盘方面的实践和改…

【MyBatis】代理开发核心配置文件介绍(二)

🚗MyBatis学习第二站站~ 🚩起始站:MyBatis概述&环境搭建(一) 🚩本文已收录至专栏:数据库学习之旅 👍希望您能有所收获 一.Mapper代理开发 (1) 引入 在上一篇中我们有提到一点,MyBatis可以…

Linux原来是这么管理内存的(最透彻的一篇)

Linux 内存管理模型非常直接明了,因为 Linux 的这种机制使其具有可移植性并且能够在内存管理单元相差不大的机器下实现 Linux,下面我们就来认识一下 Linux 内存管理是如何实现的。 基本概念 每个 Linux 进程都会有地址空间,这些地址空间由三…

堆的概念和结构以及堆排序

前言 普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结 构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统 虚拟进程地址空间中的堆是两回事&#xff0c…

Sofa-jraft的Rpc调用服务端分析

在sofa-jraft中,关于RPC的服务端是RpcServer在RpcServer中的init方法中:初始化了连接事件监听器,这个里面就是一个map,然后可以添加事件监听的处理器,初始化userProcessors, codec 是一个编码和解码器的工厂&#xff0…

VPS使用ProxySU搭建节点服务器

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删! VPS使用ProxySU搭建节点服务器 环境 contos8win10 64位ProxySU 4.1.7 服…

02-mysql高级-

文章目录mysql高级1,约束1.1 概念1.2 分类1.3 非空约束1.4 唯一约束1.5 主键约束1.6 默认约束1.7 约束练习1.8 外键约束1.8.1 概述1.8.2 语法1.8.3 练习2,数据库设计2.1 数据库设计简介2.2 表关系(一对多)mysql高级 今日目标 掌握约束的使用 掌握表关系…

自动化测试——css元素定位

文章目录一、css定位场景二、css相对定位的优点三、css的调试方法1、表达式中含有字符串:表达式中的引号一定和外面字符串的引号相反四、css基础语法1、标签定位2、class定位特别注意:当class类型的属性值包含多个分割值,$(.s_tab s_tab_1z9n…

快捷式~node.js环境搭建

1、安装包官网下载:Node.js (nodejs.org) 2、安装完成后修改环境变量 在上面已经完成了 node.js 的安装,即使不进行此步骤的环境变量配置也不影响node.js的使用 但是,若不进行环境变量配置,那么在使用命令安装 node.js全局模块 …

Linux服务:Nginx服务配置及相关模块

目录 一、Nginx配置文件 1、主配置文件解析 2、子配置文件启用 二、子配置文件使用 1、创建虚拟主机实验 2、基于端口虚拟主机实验 三、Nginx模块 1、access模块 2、自定义错误页面 3、状态页开启 一、Nginx配置文件 1、主配置文件解析 ①yum安装主配置文件位置&…