83-QStyle和QSS

QStyle和QSS

QSS 全称 Qt Style Sheets(Qt样式表),用于美化 Qt 程序界面,类似于 CSS,但不如 CSS 强大,选择器和属性较少。

本文介绍在 PySide6 中使用QSS,但同样适用于 PyQt6、PyQt5、PySide2 等。

本文主要介绍 QSS 的加载使用以及分享,QSS 本身的语法详解请参考官方文档和其他教程。

QStyle类介绍

PySide6是一个跨平台的类库,相同的窗口和界面在不同的平台上显示的样式不一样,可以根据需要在不同的平台上设置界面不同的外观风格。

QStyle是封装GUI外观的抽象类。PySide6定义了QStyle类的一些子类,应用于不同的操作系统中。

可以用窗口、控件或应用程序的setStyle(QStyle)方法给窗口、控件或整个应用程序设置风格,用style()方法获取风格。

一个平台支持的风格名称可以用QStyleFactory.keys()方法获取,返回平台支持的风格列表,例如[‘windowsvista’,Windows’,‘Fusion’],用QStyleFactory.create(str)方法根据风格名称创建风格,并返回QStyle。

下面的程序是为整个应用程序设置风格的例子。从QComboBox列表中选择不同的界面风格,整个程序的界面风格也随之改变。

83-QStyle和QSS_第1张图片

QStyle类是一个抽象基类,它封装了GUI的外观。

from PySide6.QtWidgets import QStyle

QStyle() -> None

官方描述

Qt包含一组QStyle子类,这些子类模拟Qt支持的不同平台的样式QWindowsStyle、QMacStyle等。默认情况下,这些样式内置在Qt GUI模块中。样式也可以作为插件提供。
Qt的内置小部件使用QStyle来执行几乎所有的绘制,确保它们看起来与等效的本地小部件完全相同。下图显示了九种不同样式的QComboBox。

83-QStyle和QSS_第2张图片

设置样式

可以使用setStyle函数设置整个应用程序的样式。它也可以由应用程序的用户使用-style命令行选项指定:

./myapplication -style windows

如果没有指定样式,Qt将为用户的平台或桌面环境选择最合适的样式。
也可以使用setStyle函数在单个小部件上设置样式。

开发风格感知的自定义小部件

如果您正在开发自定义小部件,并希望它们在所有平台上看起来都很好,则可以使用QStyle函数来执行小部件绘图的部分,如drawItemText、drawItemPixmap、drawPrimitive、drawControl和drawComplexControl。
大多数QStyle绘制函数采用四个参数:

  • 指定要绘制的图形元素的枚举值
  • 指定如何以及在何处渲染该元素的QStyleOption
  • 应用于绘制元素的QPainter
  • 进行绘图的QWidget可选

例如,如果你想在你的小部件上画一个焦点矩形,你可以写:

def paintEvent(self, */):

QStyle从QStyleOption中获取渲染图形元素所需的所有信息。小部件作为最后一个参数传递,以防样式需要它来执行特殊效果如macOS上的动画默认按钮,但它不是强制性的。事实上,通过正确设置QPainter,您可以使用QStyle在任何绘制设备上绘制,而不仅仅是小部件。

QStyleOption为可以绘制的各种类型的图形元素提供了各种子类。例如,PE_FrameFocusRect需要一个QStyleOptionFocusRect参数。

为了确保绘图操作尽可能快,QStyleOption及其子类具有公共数据成员。有关如何使用QStyleOption的详细信息,请参阅QStyleOption类文档。

为了方便起见,Qt提供了QStylePainter类,该类结合了QStyle、QPainter和QWidget。这使得书写成为可能

painter = QPainter(self)            ...
style().drawPrimitive(QStyle.PE_FrameFocusRect, option, painter, self)
创建自定义样式

您可以通过创建自定义样式为应用程序创建自定义外观。有两种方法可以创建自定义样式。在静态方法中,您可以选择一个现有的QStyle类,将其子类化,并重新实现虚拟函数来提供自定义行为,也可以从头开始创建整个QStyle类别。在动态方法中,您可以在运行时修改系统样式的行为。静态方法如下所述。QProxyStyle中描述了动态方法。

静态方法的第一步是从Qt提供的样式中选择一种,您将从中构建自定义样式。你对QStyle类的选择将取决于哪种风格最像你想要的风格。可以用作基础的最通用的类是QCommonStyle而不是QStyle。这是因为Qt要求其样式为QCommonStyle s。

根据要更改基本样式的哪些部分,必须重新实现用于绘制接口的这些部分的函数。为了说明这一点,我们将修改QWindowsStyle绘制的旋转框箭头的外观。箭头是drawPrimitive函数绘制的基本元素,因此我们需要重新实现该函数。我们需要以下类声明:

class CustomStyle(QProxyStyle):

    Q_OBJECT
# public
    CustomStyle(QWidget widget)
    ~CustomStyle() {}
    def drawPrimitive(element, option,):
                       painter, = QPainter()

为了绘制上下箭头,QSpinBox使用PE_IndicatorSpinUp和PE_IndirectorSpinDown基元元素。以下是如何重新实现drawPrimitive函数以不同的方式绘制它们:

def drawPrimitive(self, element, option,):
                                painter, = QPainter()

    if element == PE_IndicatorSpinUp or element == PE_IndicatorSpinDown:
        points = QPolygon(3)
        x = option.rect.x()
        y = option.rect.y()
        w = option.rect.width() / 2
        h = option.rect.height() / 2
        x += (option.rect.width() - w) / 2
        y += (option.rect.height() - h) / 2
        if element == PE_IndicatorSpinUp:
            points[0] = QPoint(x, y + h)
            points[1] = QPoint(x + w, y + h)
            points[2] = QPoint(x + w / 2, y)
        else: // PE_SpinBoxDown
            points[0] = QPoint(x, y)
            points[1] = QPoint(x + w, y)
            points[2] = QPoint(x + w / 2, y + h)

        if option.state  State_Enabled:
            painter.setPen(option.palette.mid().color())
            painter.setBrush(option.palette.buttonText())
        else:
            painter.setPen(option.palette.buttonText().color())
            painter.setBrush(option.palette.mid())

        painter.drawPolygon(points)
    else:
        QProxyStyle.drawPrimitive(element, option, painter, widget)

请注意,我们不使用小部件参数,只是将其传递给QWindowStyle::drawPrimitive函数。如前所述,关于要绘制什么以及应该如何绘制的信息是由QStyleOption对象指定的,因此无需询问小部件。
如果您需要使用小部件参数来获取其他信息,请在使用它之前小心确保它不是0并且类型正确。例如:

spinBox = QSpinBox(widget)
if spinBox:            ...

在实现自定义样式时,不能仅仅因为枚举值被称为PE_IndicatorSpinUp或PE_IndirectorSpinDown就认为小部件是QSpinBox。
样式示例的文档更详细地介绍了这个主题。

自定义QStyle子类当前不支持Qt样式表。我们计划在将来的版本中解决这个问题。

使用自定义样式

在Qt应用程序中有几种使用自定义样式的方法。最简单的方法是在创建QApplication对象之前,将自定义样式传递给setStyle静态函数:

from PySide6 import QtWidgets
from customstyle import *
if __name__ == "__main__":

    QApplication.setStyle(CustomStyle())
    app = QApplication([])
    spinBox = QSpinBox()
    spinBox.show()
    sys.exit(app.exec())

您可以随时调用setStyle,但通过在构造函数之前调用它,可以确保用户的首选项使用-style命令行选项设置得到尊重。

您可能希望使您的自定义样式可用于其他应用程序,这些应用程序可能不是您的,因此无法重新编译。Qt插件系统可以将样式创建为插件。作为插件创建的样式在运行时由Qt本身作为共享对象加载。有关如何创建样式插件的更多信息,请参阅Qt插件文档。

编译你的插件并将其放入Qt的plugins/styles目录。我们现在有了一个可插入的样式,Qt可以自动加载。要在现有应用程序中使用新样式,只需使用以下参数启动应用程序:

./myapplication -style custom

应用程序将使用您实现的自定义样式的外观。

从右到左的桌面

从右到左书写的语言如阿拉伯语和希伯来语通常也反映了小部件的整个布局,并要求光线来自屏幕的右上角,而不是左上角。
如果创建自定义样式,则在绘制不对称图元时应特别小心,以确保它们在镜像布局中看起来也正确。测试样式的一个简单方法是使用-reverse命令行选项运行应用程序,或者在main函数中调用setLayoutDirection。
当一种风格在从右到左的环境中很好地发挥作用时,需要记住以下几点:

  • subControlRect和subElementRect返回屏幕坐标中的矩形
  • QStyleOption::direction指示项目应沿哪个方向绘制
  • 如果某个样式不是从右到左感知的,它将显示项目,就像它是从左到右一样
  • visualRect、visualPos和visualAlign是有用的函数,可以从逻辑表示转换为屏幕表示。
  • alignedRect将返回一个与当前方向对齐的逻辑矩形
项目视图中的样式

视图中项目的绘制由代理执行。Qt的默认委托QStyledItemDelegate也用于计算项目的边界矩形,以及QStyledtemDelegate支持的各种项目数据角色的子元素。请参阅QStyledItemDelegate类描述,以了解支持哪些数据类型和角色。您可以在模型/视图编程中阅读更多关于项目数据角色的信息。
当QStyledItemDelegate绘制其项目时,它会绘制CE_ItemViewItem,并使用CT_ItemViewItem计算其大小。还要注意,它使用SE_ItemViewItemText来设置编辑器的大小。在实现样式以自定义项目视图的绘制时,需要检查QCommonStyle以及样式继承的任何其他子类的实现。通过这种方式,您可以了解其他样式元素是如何绘制的,然后可以重新实现应该以不同方式绘制的元素的绘制。
我们包含了一个小示例,其中我们自定义了项目背景的绘制。

case (PE_PanelItemViewItem): {
    painter.save()
    topLeft = option.rect.topLeft()
    bottomRight = option.rect.topRight()
    backgroundGradient = QLinearGradient(topLeft, bottomRight)
    backgroundGradient.setColorAt(0.0, QColor(Qt.yellow).lighter(190))
    backgroundGradient.setColorAt(1.0, Qt.white)
    painter.fillRect(option.rect, QBrush(backgroundGradient))
    painter.restore()
break

else:
    QProxyStyle.drawPrimitive(element, option, painter, widget)

基本元素PE_PanelItemViewItem负责绘制项目的背景,并从QCommonStyle的CE_ItemViewItem实现中调用。
要添加对绘制新数据类型和项目数据角色的支持,有必要创建自定义委托。但是,如果您只需要支持默认委托实现的数据类型,那么自定义样式就不需要附带的委托。QStyledItemDelegate类描述提供了有关自定义委托的详细信息。
项目视图标题的绘制也由样式完成,可以控制标题项目的大小以及行和列的大小。

枚举值

StateFlag
  • PySide6.QtWidgets.QStyle.StateFlag

    (继承enum. Flag)此枚举描述了在绘制原始元素时使用的标志。

    请注意,并非所有原语都使用所有这些标志,并且这些标志对不同的项目可能意味着不同的东西。

    Constant Description
    QStyle.State_None 指示小部件没有状态。
    QStyle.State_Active 指示小部件处于活动状态。
    QStyle.State_AutoRaise 用于指示是否应在工具按钮上使用自动提升外观。
    QStyle.State_Children 用于指示项目视图分支是否有子项。
    QStyle.State_DownArrow 用于指示向下箭头是否应该在小部件上可见。
    QStyle.State_Editing 用于指示是否在小部件上打开了编辑器。
    QStyle.State_Enabled 用于指示小部件是否已启用。
    QStyle.State_HasEditFocus 用于指示小部件当前是否具有编辑焦点。
    QStyle.State_HasFocus 用于指示小部件是否有焦点。
    QStyle.State_Horizontal 用于指示小部件是否水平布局,例如。工具栏。
    QStyle.State_KeyboardFocusChange 用于指示焦点是否已通过键盘更改,例如制表符、后制表符或快捷键。
    QStyle.State_MouseOver 用于指示小部件是否在鼠标下方。
    QStyle.State_NoChange 用于指示三态复选框。
    QStyle.State_Off 用于指示是否未选中小部件。
    QStyle.State_On 用于指示是否选中小部件。
    QStyle.State_Raised 用于指示按钮是否升起。
    QStyle.State_ReadOnly 用于指示小部件是否为只读。
    QStyle.State_Selected 用于指示是否选择了小部件。
    QStyle.State_Item 由项目视图用于指示是否应绘制水平分支。
    QStyle.State_Open 由项目视图用于指示树分支是否打开。
    QStyle.State_Sibling 项目视图用于指示是否需要绘制垂直线(对于兄弟)。
    QStyle.State_Sunken 用于指示小部件是否凹陷或按下。
    QStyle.State_UpArrow 用于指示向上箭头是否应该在小部件上可见。
    QStyle.State_Mini 用于指示迷你风格的Mac小部件或按钮。
    QStyle.State_Small 用于指示小样式Mac小部件或按钮。
PrimitiveElement
  • PySide6.QtWidgets.QStyle.PrimitiveElement

    (继承enum. IntEnum)此枚举描述了各种原语元素。原语元素是常见的GUI元素,例如复选框指示符或按钮斜面。

    Constant Description
    QStyle.PE_PanelButtonCommand 用于启动动作的按钮,例如QPushButton。
    QStyle.PE_FrameDefaultButton 此框架围绕默认按钮,例如在对话框中。
    QStyle.PE_PanelButtonBevel 带有按钮斜面的通用面板。
    QStyle.PE_PanelButtonTool 工具按钮面板,与QToolButton一起使用。
    QStyle.PE_PanelLineEdit QLineEdit的面板。
    QStyle.PE_IndicatorButtonDropDown 下拉按钮的指示器,例如,显示菜单的工具按钮。
    QStyle.PE_FrameFocusRect 通用焦点指示器。
    QStyle.PE_IndicatorArrowUp 通用向上箭头。
    QStyle.PE_IndicatorArrowDown 通用向下箭头。
    QStyle.PE_IndicatorArrowRight 通用右箭头。
    QStyle.PE_IndicatorArrowLeft 通用左箭头。
    QStyle.PE_IndicatorSpinUp 旋转小部件的向上符号,例如QSpinBox。
    QStyle.PE_IndicatorSpinDown 旋转小部件的向下符号。
    QStyle.PE_IndicatorSpinPlus 增加旋转小部件的符号。
    QStyle.PE_IndicatorSpinMinus 旋转小部件的减少符号。
    QStyle.PE_IndicatorItemViewItemCheck 视图项的开/关指示器。
    QStyle.PE_IndicatorCheckBox 开/关指示器,例如QCheckBox。
    QStyle.PE_IndicatorRadioButton 独家开/关指示器,例如QRadioButton。
    QStyle.PE_IndicatorDockWidgetResizeHandle 调整停靠窗口的手柄大小。
    QStyle.PE_Frame 通用框架
    QStyle.PE_FrameMenu 弹出窗口/菜单的框架;另请参阅QMenu。
    QStyle.PE_PanelMenuBar 菜单栏面板。
    QStyle.PE_PanelScrollAreaCorner 滚动区域右下角(或左下角)的面板。
    QStyle.PE_FrameDockWidget 停靠窗口和工具栏的面板框架。
    QStyle.PE_FrameTabWidget 标签小部件的框架。
    QStyle.PE_FrameLineEdit 用于行编辑的面板框架。
    QStyle.PE_FrameGroupBox 组框周围的面板框架。
    QStyle.PE_FrameButtonBevel 用于按钮斜面的面板框架。
    QStyle.PE_FrameButtonTool 工具按钮的面板框架。
    QStyle.PE_IndicatorHeaderArrow 用于指示列表或表标题上的排序的箭头。
    QStyle.PE_FrameStatusBarItem 状态栏项的框架;另请参阅QStatusBar。
    QStyle.PE_FrameWindow 围绕MDI窗口或停靠窗口的框架。
    QStyle.PE_IndicatorMenuCheckMark 选中菜单中使用的标记。
    QStyle.PE_IndicatorProgressChunk 进度条指示器的一部分;另请参阅QProgressBar。
    QStyle.PE_IndicatorBranch 用于在树视图中表示树的分支的线。
    QStyle.PE_IndicatorToolBarHandle 工具栏的句柄。
    QStyle.PE_IndicatorToolBarSeparator 工具栏中的分隔符。
    QStyle.PE_PanelToolBar 工具栏的面板。
    QStyle.PE_PanelTipLabel 提示标签的面板。
    QStyle.PE_FrameTabBarBase 为选项卡栏绘制的框架,通常为不属于选项卡小部件的选项卡栏绘制。
    QStyle.PE_IndicatorTabTear 已弃用。改用PE_IndicatorTabTearLeft。
    QStyle.PE_IndicatorTabTearLeft 当有许多选项卡时,选项卡在可见选项卡栏的左侧部分滚动出去的指示符。
    QStyle.PE_IndicatorTabTearRight 当有许多选项卡时,选项卡在可见选项卡栏的右侧部分滚动出去的指示符。
    QStyle.PE_IndicatorColumnViewArrow 一个箭头在一个QColnView。
    QStyle.PE_Widget 一个普通的QWidget。
    QStyle.PE_CustomBase 自定义原始元素的基值。高于此的所有值都保留供自定义使用。自定义值必须大于此值。
    QStyle.PE_IndicatorItemViewItemDrop 一种指示器,用于显示在项目视图中的拖放操作期间项目视图中的项目即将被删除的位置。
    QStyle.PE_PanelItemViewItem 项目视图中项目的背景。
    QStyle.PE_PanelItemViewRow 项目视图中行的背景。
    QStyle.PE_PanelStatusBar 状态栏的面板。
    QStyle.PE_IndicatorTabClose 标签栏上的关闭按钮。
    QStyle.PE_PanelMenu 菜单面板。
ControlElement
  • PySide6.QtWidgets.QStyle.ControlElement

    (继承enum. IntEnum)此枚举表示一个控制元素。控制元素是执行某些操作或向用户显示信息的小部件的一部分。

    Constant Description
    QStyle.CE_PushButton QPushButton可绘制CE_PushButtonBevel、CE_PushButtonLabel和PE_FrameFocusRect。
    QStyle.CE_PushButtonBevel QPushButton的斜面和默认指示器。
    QStyle.CE_PushButtonLabel QPushButton的标签(带有文本或像素图的图标)。
    QStyle.CE_DockWidgetTitle 停靠窗口标题。
    QStyle.CE_Splitter 拆分器句柄;另请参阅QSplitter。
    QStyle.CE_CheckBox QCheckBox,绘制PE_IndicatorCheckBox、CE_CheckBoxLabel和PE_FrameFocusRect。
    QStyle.CE_CheckBoxLabel QCheckBox的标签(文本或像素图)。
    QStyle.CE_RadioButton QRadioButton,绘制PE_IndicatorRadioButton、CE_RadioButtonLabel和PE_FrameFocusRect。
    QStyle.CE_RadioButtonLabel QRadioButton的标签(文本或像素图)。
    QStyle.CE_TabBarTab QTabBar中的选项卡和标签。
    QStyle.CE_TabBarTabShape 选项卡栏中的选项卡形状。
    QStyle.CE_TabBarTabLabel 标签中的标签。
    QStyle.CE_ProgressBar 一个QProgressBar,绘制CE_ProgressBarGroove、CE_ProgressBarContents和CE_ProgressBarLabel。
    QStyle.CE_ProgressBarGroove 在QProgressBar中绘制进度指示器的凹槽。
    QStyle.CE_ProgressBarContents QProgressBar的进度指示器。
    QStyle.CE_ProgressBarLabel QProgressBar的文本标签。
    QStyle.CE_ToolButtonLabel 工具按钮的标签。
    QStyle.CE_MenuBarItem QMenuBar中的菜单项。
    QStyle.CE_MenuBarEmptyArea QMenuBar的空白区域。
    QStyle.CE_MenuItem QMenu中的菜单项。
    QStyle.CE_MenuScroller 当样式支持滚动时,在QMenu中滚动区域。
    QStyle.CE_MenuTearoff 表示QMenu的撕开部分的菜单项。
    QStyle.CE_MenuEmptyArea 菜单中没有菜单项的区域。
    QStyle.CE_MenuHMargin 菜单左边/右边的水平额外空间。
    QStyle.CE_MenuVMargin 菜单顶部/底部的垂直额外空间。
    QStyle.CE_ToolBoxTab QToolBox中工具箱的选项卡和标签。
    QStyle.CE_SizeGrip 窗口调整手柄大小;另请参阅QSizeGrip。
    QStyle.CE_Header 一个标题。
    QStyle.CE_HeaderSection 标题部分。
    QStyle.CE_HeaderLabel 标头的标签。
    QStyle.CE_ScrollBarAddLine 滚动条线增加指示器。(即向下滚动);另见QScrollBar。
    QStyle.CE_ScrollBarSubLine 滚动条线减少指示器(即向上滚动)。
    QStyle.CE_ScrollBarAddPage 滚动条页面增加指示器(即页面向下)。
    QStyle.CE_ScrollBarSubPage 滚动条页面减少指示器(即页面向上)。
    QStyle.CE_ScrollBarSlider 滚动条滑块。
    QStyle.CE_ScrollBarFirst 滚动条第一行指示器(即主页)。
    QStyle.CE_ScrollBarLast 滚动条最后一行指示器(即结束)。
    QStyle.CE_RubberBand 例如在图标视图中使用的橡皮筋。
    QStyle.CE_FocusFrame 样式控制的焦点框架。
    QStyle.CE_ItemViewItem 项目视图中的项目。
    QStyle.CE_CustomBase 自定义控件元素的基值;自定义值必须大于此值。
    QStyle.CE_ComboBoxLabel 不可编辑的QComboBox的标签。
    QStyle.CE_ToolBar 像QToolBar这样的工具栏。
    QStyle.CE_ToolBoxTabShape 工具箱的标签形状。
    QStyle.CE_ToolBoxTabLabel 工具箱的标签。
    QStyle.CE_HeaderEmptyArea 标题视图中没有标题部分的区域。
    QStyle.CE_ShapedFrame 具有QStyleOptionFrame中指定的形状的框架;请参阅QFrame。
SubElement
  • PySide6.QtWidgets.QStyle.SubElement

    (继承enum. IntEnum)此枚举表示小部件的子区域。样式实现使用这些区域来绘制小部件的不同部分。

    Constant Description
    QStyle.SE_PushButtonContents 包含标签的区域(带有文本或像素图的图标)。
    QStyle.SE_PushButtonFocusRect 焦点矩形的区域(通常大于内容矩形)。
    QStyle.SE_PushButtonLayoutItem 对父布局重要的区域。
    QStyle.SE_PushButtonBevel [自5.15]用于按钮斜面的区域。
    QStyle.SE_CheckBoxIndicator 区域为状态指示器(例如,复选标记)。
    QStyle.SE_CheckBoxContents 标签的区域(文本或像素图)。
    QStyle.SE_CheckBoxFocusRect 焦点指示器的区域。
    QStyle.SE_CheckBoxClickRect 可点击区域,默认为SE_CheckBoxFocusRect。
    QStyle.SE_CheckBoxLayoutItem 对父布局重要的区域。
    QStyle.SE_DateTimeEditLayoutItem 对父布局重要的区域。
    QStyle.SE_RadioButtonIndicator 状态指示器的区域。
    QStyle.SE_RadioButtonContents 标签区域。
    QStyle.SE_RadioButtonFocusRect 焦点指示器的区域。
    QStyle.SE_RadioButtonClickRect 可点击区域,默认为SE_RadioButtonFocusRect。
    QStyle.SE_RadioButtonLayoutItem 对父布局重要的区域。
    QStyle.SE_ComboBoxFocusRect 焦点指示器的区域。
    QStyle.SE_SliderFocusRect 焦点指示器的区域。
    QStyle.SE_SliderLayoutItem 对父布局重要的区域。
    QStyle.SE_SpinBoxLayoutItem 对父布局重要的区域。
    QStyle.SE_ProgressBarGroove 凹槽区域。
    QStyle.SE_ProgressBarContents 进度指示器的区域。
    QStyle.SE_ProgressBarLabel 文本标签的区域。
    QStyle.SE_ProgressBarLayoutItem 对父布局重要的区域。
    QStyle.SE_FrameContents 帧内容的区域。
    QStyle.SE_ShapedFrameContents 使用QStyleOptionFrame中的形状显示框架内容的区域;请参阅QFrame
    QStyle.SE_FrameLayoutItem 对父布局重要的区域。
    QStyle.SE_HeaderArrow 标题的排序指示符的区域。
    QStyle.SE_HeaderLabel 标题中标签的区域。
    QStyle.SE_LabelLayoutItem 对父布局重要的区域。
    QStyle.SE_LineEditContents 行编辑内容的区域。
    QStyle.SE_TabWidgetLeftCorner 选项卡小部件中左角小部件的区域。
    QStyle.SE_TabWidgetRightCorner 选项卡小部件中右角小部件的区域。
    QStyle.SE_TabWidgetTabBar 选项卡小部件中选项卡栏小部件的区域。
    QStyle.SE_TabWidgetTabContents 选项卡小部件内容的区域。
    QStyle.SE_TabWidgetTabPane 选项卡小部件窗格的区域。
    QStyle.SE_TabWidgetLayoutItem 对父布局重要的区域。
    QStyle.SE_ToolBoxTabContents 工具箱选项卡图标和标签的区域。
    QStyle.SE_ToolButtonLayoutItem 对父布局重要的区域。
    QStyle.SE_ItemViewItemCheckIndicator 视图项复选标记的区域。
    QStyle.SE_TabBarTearIndicator 已弃用。改用SE_TabBarTearIndicatorLeft。
    QStyle.SE_TabBarTearIndicatorLeft 标签栏左侧带有滚动箭头的撕裂指示器区域。
    QStyle.SE_TabBarTearIndicatorRight 标签栏右侧带有滚动箭头的撕裂指示器区域。
    QStyle.SE_TabBarScrollLeftButton 带滚动按钮的标签栏上的左滚动按钮区域。
    QStyle.SE_TabBarScrollRightButton 带有滚动按钮的标签栏上的向右滚动按钮区域。
    QStyle.SE_TreeViewDisclosureItem 树分支中实际公开项的区域。
    QStyle.SE_GroupBoxLayoutItem 对父布局重要的区域。
    QStyle.SE_CustomBase 自定义子元素的基值。自定义值必须大于此值。
    QStyle.SE_DockWidgetFloatButton 坞小部件的浮动按钮。
    QStyle.SE_DockWidgetTitleBarText 坞小部件标题的文本边界。
    QStyle.SE_DockWidgetCloseButton 扩展坞小部件的关闭按钮。
    QStyle.SE_DockWidgetIcon 码头小部件的图标。
    QStyle.SE_ComboBoxLayoutItem 对父布局重要的区域。
    QStyle.SE_ItemViewItemDecoration 视图项装饰的区域(图标)。
    QStyle.SE_ItemViewItemText 视图项文本的区域。
    QStyle.SE_ItemViewItemFocusRect 视图项的焦点矩形区域。
    QStyle.SE_TabBarTabLeftButton 选项卡栏中选项卡左侧小部件的区域。
    QStyle.SE_TabBarTabRightButton 选项卡栏中选项卡右侧小部件的区域。
    QStyle.SE_TabBarTabText 选项卡栏中选项卡上文本的区域。
    QStyle.SE_ToolBarHandle 工具栏手柄的区域。
ComplexControl
  • PySide6.QtWidgets.QStyle.ComplexControl

    (继承enum. IntEnum)此枚举描述了可用的复杂控件。复杂控件具有不同的行为,具体取决于用户单击它们的位置或按下的键。

    Constant Description
    QStyle.CC_SpinBox 一个旋转盒,比如QSpinBox。
    QStyle.CC_ComboBox 一个组合框,比如QComboBox。
    QStyle.CC_ScrollBar 滚动条,如QScrollBar。
    QStyle.CC_Slider 一个滑块,比如QSlider。
    QStyle.CC_ToolButton 工具按钮,如QToolButton。
    QStyle.CC_TitleBar 标题栏,类似于QMdiSubWindow中使用的标题栏。
    QStyle.CC_GroupBox 一个分组框,比如QGroupBox。
    QStyle.CC_Dial 表盘,如QDial。
    QStyle.CC_MdiControls 菜单栏中用于最大化MDI子窗口的最小化、关闭和正常按钮。
    QStyle.CC_CustomBase 自定义复杂控件的基值。自定义值必须大于此值。
SubControl
  • PySide6.QtWidgets.QStyle.SubControl

    (继承枚举.标志)此枚举描述了可用的子控件。子控件是复杂控件(ComplexControl)中的控制元素。

    Constant Description
    QStyle.SC_None 与其他子控件不匹配的特殊值。
    QStyle.SC_ScrollBarAddLine 滚动条添加线(即向下/向右箭头);另请参阅QScrollBar。
    QStyle.SC_ScrollBarSubLine 滚动条子线(即向上/向左箭头)。
    QStyle.SC_ScrollBarAddPage 滚动条添加页面(即向下页面)。
    QStyle.SC_ScrollBarSubPage 滚动条子页面(即向上翻页)。
    QStyle.SC_ScrollBarFirst 滚动条第一行(即主页)。
    QStyle.SC_ScrollBarLast 滚动条最后一行(即结束)。
    QStyle.SC_ScrollBarSlider 滚动条滑块手柄。
    QStyle.SC_ScrollBarGroove 包含滑块手柄可以移动的区域的特殊子控件。
    QStyle.SC_SpinBoxUp 旋转小部件向上/增加;另请参阅QSpinBox。
    QStyle.SC_SpinBoxDown 旋转小部件向下/减少。
    QStyle.SC_SpinBoxFrame 旋转小部件框架。
    QStyle.SC_SpinBoxEditField 旋转小部件编辑字段。
    QStyle.SC_ComboBoxEditField 组合框编辑字段;另请参阅QComboBox。
    QStyle.SC_ComboBoxArrow 组合框箭头按钮。
    QStyle.SC_ComboBoxFrame 组合框。
    QStyle.SC_ComboBoxListBoxPopup 组合框弹出窗口的参考矩形。用于计算弹出窗口的位置。
    QStyle.SC_SliderGroove 包含滑块手柄可以移动的区域的特殊子控件。
    QStyle.SC_SliderHandle 滑块手柄。
    QStyle.SC_SliderTickmarks 滑块刻度线。
    QStyle.SC_ToolButton 工具按钮(另请参阅QToolButton)。
    QStyle.SC_ToolButtonMenu 用于在工具按钮中打开弹出菜单的子控件。
    QStyle.SC_TitleBarSysMenu 系统菜单按钮(即恢复、关闭等)。
    QStyle.SC_TitleBarMinButton 最小化按钮。
    QStyle.SC_TitleBarMaxButton 最大化按钮。
    QStyle.SC_TitleBarCloseButton 关闭按钮。
    QStyle.SC_TitleBarLabel 窗口标题标签。
    QStyle.SC_TitleBarNormalButton 正常(恢复)按钮。
    QStyle.SC_TitleBarShadeButton 阴影按钮。
    QStyle.SC_TitleBarUnshadeButton 取消阴影按钮。
    QStyle.SC_TitleBarContextHelpButton 上下文帮助按钮。
    QStyle.SC_DialHandle 表盘的手柄(即您用来控制表盘的东西)。
    QStyle.SC_DialGroove 表盘的凹槽。
    QStyle.SC_DialTickmarks 表盘的刻度标记。
    QStyle.SC_GroupBoxFrame 分组框的帧。
    QStyle.SC_GroupBoxLabel 分组框的标题。
    QStyle.SC_GroupBoxCheckBox 分组框的可选复选框。
    QStyle.SC_GroupBoxContents 分组框内容。
    QStyle.SC_MdiNormalButton 菜单栏中MDI子窗口的普通按钮。
    QStyle.SC_MdiMinButton 菜单栏中MDI子窗口的最小化按钮。
    QStyle.SC_MdiCloseButton 菜单栏中MDI子窗口的关闭按钮。
    QStyle.SC_All 匹配所有子控件的特殊值。
PixelMetric
  • PySide6.QtWidgets.QStyle.PixelMetric

    (继承enum. IntEnum)此枚举描述了各种可用的像素指标。像素指标是由单个像素值表示的样式相关大小。

    Constant Description
    QStyle.PM_ButtonMargin 按钮标签和框架之间的空白量。
    QStyle.PM_DockWidgetTitleBarButtonMargin 停靠小部件的标题栏按钮标签和框架之间的空白量。
    QStyle.PM_ButtonDefaultIndicator 默认按钮指示框的宽度。
    QStyle.PM_MenuButtonIndicator 菜单按钮指示器的宽度与小部件的高度成比例。
    QStyle.PM_ButtonShiftHorizontal 按下按钮时按钮的水平内容移动。
    QStyle.PM_ButtonShiftVertical 按下按钮时按钮的垂直内容移动。
    QStyle.PM_DefaultFrameWidth 默认帧宽(通常为2)。
    QStyle.PM_SpinBoxFrameWidth 旋转框的帧宽,默认为PM_DefaultFrameWidth。
    QStyle.PM_ComboBoxFrameWidth 组合框的帧宽,默认为PM_DefaultFrameWidth。
    QStyle.PM_MdiSubWindowFrameWidth MDI窗口的帧宽。
    QStyle.PM_MdiSubWindowMinimizedWidth 最小化MDI窗口的宽度。
    QStyle.PM_LayoutLeftMargin QLayout的默认左边距。
    QStyle.PM_LayoutTopMargin QLayout的默认上边距。
    QStyle.PM_LayoutRightMargin QLayout的默认右边距。
    QStyle.PM_LayoutBottomMargin QLayout的默认底边距。
    QStyle.PM_LayoutHorizontalSpacing QLayout的默认水平行间距。
    QStyle.PM_LayoutVerticalSpacing QLayout的默认垂直行间距。
    QStyle.PM_MaximumDragDistance 拖动时鼠标和滚动条之间允许的最大距离。超过指定的距离将导致滑块跳回原始位置;值-1禁用此行为。
    QStyle.PM_ScrollBarExtent 垂直滚动条的宽度和水平滚动条的高度。
    QStyle.PM_ScrollBarSliderMin 垂直滚动条滑块的最小高度和水平滚动条滑块的最小宽度。
    QStyle.PM_SliderThickness 总滑块厚度。
    QStyle.PM_SliderControlThickness 滑块手柄的厚度。
    QStyle.PM_SliderLength 滑块的长度。
    QStyle.PM_SliderTickmarkOffset 刻度线和滑块之间的偏移量。
    QStyle.PM_SliderSpaceAvailable 滑块移动的可用空间。
    QStyle.PM_DockWidgetSeparatorExtent 水平停靠窗口中分隔符的宽度和垂直停靠窗口中分隔符的高度。
    QStyle.PM_DockWidgetHandleExtent 水平停靠窗口中手柄的宽度和垂直停靠窗口中手柄的高度。
    QStyle.PM_DockWidgetFrameWidth 停靠窗口的框架宽度。
    QStyle.PM_DockWidgetTitleMargin 停靠窗口标题的边距。
    QStyle.PM_MenuBarPanelWidth 菜单栏的框架宽度,默认为PM_DefaultFrameWidth。
    QStyle.PM_MenuBarItemSpacing 菜单栏项之间的间距。
    QStyle.PM_MenuBarHMargin 菜单栏项和栏的左/右之间的间距。
    QStyle.PM_MenuBarVMargin 菜单栏项与栏顶/栏底之间的间距。
    QStyle.PM_ToolBarFrameWidth 工具栏周围框架的宽度。
    QStyle.PM_ToolBarHandleExtent 水平工具栏中工具栏句柄的宽度和垂直工具栏中句柄的高度。
    QStyle.PM_ToolBarItemMargin 工具栏框架和项目之间的间距。
    QStyle.PM_ToolBarItemSpacing 工具栏项之间的间距。
    QStyle.PM_ToolBarSeparatorExtent 水平工具栏中工具栏分隔符的宽度和垂直工具栏中分隔符的高度。
    QStyle.PM_ToolBarExtensionExtent 水平工具栏中工具栏扩展按钮的宽度和垂直工具栏中按钮的高度。
    QStyle.PM_TabBarTabOverlap 选项卡应重叠的像素数。(目前仅用于样式,不在QTabBar内部)
    QStyle.PM_TabBarTabHSpace 额外的空间添加到标签宽度。
    QStyle.PM_TabBarTabVSpace 额外的空间添加到标签高度。
    QStyle.PM_TabBarBaseHeight 标签栏和标签页之间区域的高度。
    QStyle.PM_TabBarBaseOverlap 标签栏与标签栏底座重叠的像素数。
    QStyle.PM_TabBarScrollButtonWidth
    QStyle.PM_TabBarTabShiftHorizontal 选择选项卡时的水平像素偏移。
    QStyle.PM_TabBarTabShiftVertical 选择选项卡时的垂直像素偏移。
    QStyle.PM_ProgressBarChunkWidth 进度条指示器中块的宽度。
    QStyle.PM_SplitterWidth 分离器的宽度。
    QStyle.PM_TitleBarHeight 标题栏的高度。
    QStyle.PM_IndicatorWidth 复选框指示器的宽度。
    QStyle.PM_IndicatorHeight 复选框指示器的高度。
    QStyle.PM_ExclusiveIndicatorWidth 单选按钮指示器的宽度。
    QStyle.PM_ExclusiveIndicatorHeight 单选按钮指示器的高度。
    QStyle.PM_MenuPanelWidth QMenu的边框宽度(应用于所有边)。
    QStyle.PM_MenuHMargin QMenu的附加边框(用于左侧和右侧)。
    QStyle.PM_MenuVMargin QMenu的附加边框(用于底部和顶部)。
    QStyle.PM_MenuScrollerHeight QMenu中滚动区域的高度。
    QStyle.PM_MenuTearoffHeight QMenu中撕裂区域的高度。
    QStyle.PM_MenuDesktopFrameWidth 桌面上菜单的框架宽度。
    QStyle.PM_HeaderMarkSize 标题中排序指示符的大小。
    QStyle.PM_HeaderGripMargin 标题中调整大小手柄的大小。
    QStyle.PM_HeaderMargin 排序指示符和文本之间的边距大小。
    QStyle.PM_SpinBoxSliderHeight 可选旋转框滑块的高度。
    QStyle.PM_ToolBarIconSize 默认工具栏图标大小
    QStyle.PM_SmallIconSize 默认小图标大小
    QStyle.PM_LargeIconSize 默认大图标大小
    QStyle.PM_FocusFrameHMargin 焦点框架将开始小部件的水平边距。
    QStyle.PM_FocusFrameVMargin 焦点框架将开始小部件的垂直边距。
    QStyle.PM_IconViewIconSize 图标视图中图标的默认大小。
    QStyle.PM_ListViewIconSize 列表视图中图标的默认大小。
    QStyle.PM_ToolTipLabelFrameWidth 刀尖标签的框架宽度。
    QStyle.PM_CheckBoxLabelSpacing 复选框指示符与其标签之间的行间距。
    QStyle.PM_RadioButtonLabelSpacing 单选按钮指示器与其标签之间的行间距。
    QStyle.PM_TabBarIconSize 标签栏的默认图标大小。
    QStyle.PM_SizeGripSize 大小握把的大小。
    QStyle.PM_MessageBoxIconSize 消息框中标准图标的大小
    QStyle.PM_ButtonIconSize 按钮图标的默认大小
    QStyle.PM_TextCursorWidth 行编辑或文本编辑中光标的宽度
    QStyle.PM_TabBar_ScrollButtonOverlap 标签栏中左右按钮之间的距离。
    QStyle.PM_TabCloseIndicatorWidth 标签栏中标签页上关闭按钮的默认宽度。
    QStyle.PM_TabCloseIndicatorHeight 标签栏中标签页上关闭按钮的默认高度。
    QStyle.PM_ScrollView_ScrollBarSpacing 框架和滚动条之间的距离SH_ScrollView_FrameOnlyAroundContents设置。
    QStyle.PM_ScrollView_ScrollBarOverlap 滚动条和滚动内容之间的重叠
    QStyle.PM_SubMenuOverlap 子菜单与其父菜单之间的水平重叠。
    QStyle.PM_TreeViewIndentation 树视图中项目的缩进。
    QStyle.PM_HeaderDefaultSectionSizeHorizontal 水平标题中部分的默认大小。此枚举值已在Qt 5.5中引入。
    QStyle.PM_HeaderDefaultSectionSizeVertical 垂直标题中部分的默认大小。此枚举值已在Qt 5.5中引入。
    QStyle.PM_TitleBarButtonIconSize 标题栏上按钮图标的大小。
    QStyle.PM_TitleBarButtonSize 标题栏上按钮的大小。
    QStyle.PM_LineEditIconSize 行编辑中图标的默认大小。
    QStyle.PM_LineEditIconMargin 行编辑中图标周围的边距。
    QStyle.PM_CustomBase 自定义像素指标的基值。自定义值必须大于此值。
ContentsType
  • PySide6.QtWidgets.QStyle.ContentsType

    (继承enum. IntEnum)此枚举描述了可用的内容类型。这些用于计算各种小部件内容的大小。

    Constant Description
    QStyle.CT_CheckBox 一个复选框,如QCheckBox。
    QStyle.CT_ComboBox 组合框,如QComboBox。
    QStyle.CT_HeaderSection 标题部分,如QHeader。
    QStyle.CT_LineEdit 行编辑,如QLineEdit。
    QStyle.CT_Menu 菜单,如QMenu。
    QStyle.CT_MenuBar 菜单栏,如QMenuBar。
    QStyle.CT_MenuBarItem 菜单栏项,类似于QMenuBar中的按钮。
    QStyle.CT_MenuItem 菜单项,如QMenuItem。
    QStyle.CT_ProgressBar 进度条,如QProgressBar。
    QStyle.CT_PushButton 一个按钮,如QPushButton。
    QStyle.CT_RadioButton 单选按钮,如QRadioButton。
    QStyle.CT_SizeGrip 一个尺寸的握把,比如QSizeGrip。
    QStyle.CT_Slider 一个滑块,比如QSlider。
    QStyle.CT_ScrollBar 滚动条,如QScrollBar。
    QStyle.CT_SpinBox 一个旋转盒,比如QSpinBox。
    QStyle.CT_Splitter 一个分离器,比如QSplitter。
    QStyle.CT_TabBarTab 标签栏上的标签,如QTabBar。
    QStyle.CT_TabWidget 一个选项卡小部件,例如QTabWidget。
    QStyle.CT_ToolButton 工具按钮,如QToolButton。
    QStyle.CT_GroupBox 一个分组框,比如QGroupBox。
    QStyle.CT_ItemViewItem 项目视图中的项目。
    QStyle.CT_CustomBase 自定义内容类型的基值。自定义值必须大于此值。
    QStyle.CT_MdiControls 菜单栏中用于最大化MDI子窗口的最小化、正常和关闭按钮。
RequestSoftwareInputPanel
  • PySide6.QtWidgets.QStyle.RequestSoftwareInputPanel

    此枚举描述了在什么情况下支持输入的小部件将请求软件输入面板。

    Constant Description
    QStyle.RSIP_OnMouseClickAndAlreadyFocused 如果用户单击小部件,则请求输入面板,但前提是它已经聚焦。
    QStyle.RSIP_OnMouseClick 如果用户单击小部件,则请求输入面板。
StyleHint
  • PySide6.QtWidgets.QStyle.StyleHint

    (继承enum. IntEnum)此枚举描述了可用的样式提示。样式提示是一般的外观和/或感觉提示。

    Constant Description
    QStyle.SH_EtchDisabledText 禁用的文本是“蚀刻”,因为它是在Windows上。
    QStyle.SH_DitherDisabledText 禁用的文本会像在Motif上一样抖动。
    QStyle.SH_ScrollBar_ContextMenu 滚动条是否具有上下文菜单。
    QStyle.SH_ScrollBar_MiddleClickAbsolutePosition 一个布尔值。如果为真,单击滚动条的中间位置会导致滑块跳转到该位置。如果为假,则忽略中间单击。
    QStyle.SH_ScrollBar_LeftClickAbsolutePosition 一个布尔值。如果为true,左键单击滚动条会导致滑块跳转到该位置。如果为false,左键单击将对每个控件进行适当的操作。
    QStyle.SH_ScrollBar_ScrollWhenPointerLeavesControl 一个布尔值。如果为true,当单击滚动条SubControl时,按住鼠标按钮并将指针移到SubControl之外,滚动条继续滚动。如果为false,当指针离开SubControl时,滚动条停止滚动。
    QStyle.SH_ScrollBar_RollBetweenButtons 布尔值。如果为true,单击滚动条按钮(SC_ScrollBarAddLine或SC_ScrollBarSubLine)并拖动到相反的按钮(滚动)时,将按下新按钮并释放旧按钮。当为false时,释放原始按钮,什么也没发生(如按钮)。
    QStyle.SH_TabBar_Alignment QTabWidget中选项卡的对齐方式。可能的值是对齐左、对齐中心和对齐右。
    QStyle.SH_Header_ArrowAlignment 排序指示符的位置可能出现在列表或表格标题中。可能的值是对齐值(即对齐标志的OR组合)。
    QStyle.SH_Slider_SnapToValue 滑块在移动时捕捉到值,就像在Windows上一样。
    QStyle.SH_Slider_SloppyKeyEvents 按键按压以草率的方式处理,即在垂直滑块上向左减去一条线。
    QStyle.SH_ProgressDialog_CenterCancelButton 进度对话框上的居中按钮,否则右对齐。
    QStyle.SH_ProgressDialog_TextLabelAlignment 正在进行的对话框中文本标签的对齐方式;在Windows上对齐中心,否则对齐中心。
    QStyle.SH_PrintDialog_RightAlignButtons 右对齐打印对话框中的按钮,就像在Windows上所做的那样。
    QStyle.SH_MainWindow_SpaceBelowMenuBar 菜单栏和停靠区之间的一个或两个像素空间,就像在Windows上所做的那样。
    QStyle.SH_FontDialog_SelectAssociatedText 在行编辑中选择文本,或者在从列表框中选择项目时,或者在行编辑接收焦点时选择文本,就像在Windows上所做的那样。
    QStyle.SH_Menu_KeyboardSearch 键入会导致菜单搜索相关项目,否则只考虑助记符。
    QStyle.SH_Menu_AllowActiveAndDisabled 允许禁用的菜单项处于活动状态。
    QStyle.SH_Menu_SpaceActivatesItem 按空格键激活项目,就像在Motif上做的那样。
    QStyle.SH_Menu_SubMenuPopupDelay 在打开子菜单之前等待的毫秒数(Windows上为256,Motif上为96)。
    QStyle.SH_Menu_Scrollable 弹出菜单是否必须支持滚动。
    QStyle.SH_Menu_SloppySubMenus 弹出菜单是否必须支持用户将鼠标光标移动到子菜单,同时交叉菜单的其他项目。大多数现代桌面平台都支持这一点。
    QStyle.SH_Menu_SubMenuUniDirection 从Qt 5.5开始。如果光标必须向子菜单移动(就像在macOS上一样),或者光标可以向任何方向移动,只要它在草率超时之前到达子菜单。
    QStyle.SH_Menu_SubMenuUniDirectionFailCount 自Qt 5.5。当定义SH_Menu_SubMenuUniDirection时,这个枚举定义了在丢弃草率子菜单之前失败的鼠标移动次数。这可以用来控制uni方向算法的“严格性”。
    QStyle.SH_Menu_SubMenuSloppySelectOtherActions 从Qt 5.5开始。当鼠标移动到草率的子菜单时,是否应该选择其他执行事项。
    QStyle.SH_Menu_SubMenuSloppyCloseTimeout 从Qt 5.5开始。用于关闭草率子菜单的超时。
    QStyle.SH_Menu_SubMenuResetWhenReenteringParent 从Qt 5.5开始。当从子子菜单进入父菜单时,是否应该重置草率状态,有效地关闭子菜单并使当前子菜单处于活动状态。
    QStyle.SH_Menu_SubMenuDontStartSloppyOnLeave 从Qt 5.5开始。当鼠标离开子菜单时,不要启动草率的计时器。
    QStyle.SH_ScrollView_FrameOnlyAroundContents 滚动视图是否仅围绕内容(如Motif)或围绕内容、滚动条和角小部件(如Windows)绘制框架。
    QStyle.SH_MenuBar_AltKeyNavigation 菜单栏项目可通过按Alt导航,然后使用箭头键选择所需项目。
    QStyle.SH_ComboBox_ListMouseTracking 组合框下拉列表中的鼠标跟踪。
    QStyle.SH_Menu_MouseTracking 弹出菜单中的鼠标跟踪。
    QStyle.SH_MenuBar_MouseTracking 菜单栏中的鼠标跟踪。
    QStyle.SH_Menu_FillScreenWithScroll 滚动弹出窗口是否应该在滚动时填满屏幕。
    QStyle.SH_Menu_SelectionWrap 弹出窗口是否应该允许选择换行,即选择下一项是否应该是第一项。
    QStyle.SH_ItemView_ChangeHighlightOnFocus 失去焦点时使选定的项目变灰。
    QStyle.SH_Widget_ShareActivation 使用浮动无模式对话框打开共享激活。
    QStyle.SH_TabBar_SelectMouseType 应选择哪种类型的鼠标事件导致选项卡。
    QStyle.SH_ListViewExpand_SelectMouseType 应该选择哪种类型的鼠标事件导致列表视图展开。
    QStyle.SH_TabBar_PreferNoArrows 标签栏是否应建议大小以防止滚动箭头。
    QStyle.SH_ComboBox_Popup 允许弹出作为组合框下拉菜单。
    QStyle.SH_Workspace_FillSpaceOnMaximize 工作空间应该最大化客户区。
    QStyle.SH_TitleBar_NoBorder 标题栏没有边框。
    QStyle.SH_Slider_StopMouseOverSlider 当滑块到达鼠标位置时停止自动重复。
    QStyle.SH_BlinkCursorWhenTextSelected 选择文本时光标是否应闪烁。
    QStyle.SH_RichText_FullWidthSelection 富文本选择是否应扩展到文档的整个宽度。
    QStyle.SH_GroupBox_TextLabelVerticalAlignment 如何垂直对齐组框的文本标签。
    QStyle.SH_GroupBox_TextLabelColor 如何绘制组框的文本标签。
    QStyle.SH_DialogButtons_DefaultButton 哪个按钮在对话框的按钮小部件中获得默认状态。
    QStyle.SH_ToolBox_SelectedPageTitleBold QToolBox中选定页面标题的粗体。
    QStyle.SH_LineEdit_PasswordCharacter 用于密码的Unicode字符。
    QStyle.SH_LineEdit_PasswordMaskDelay 确定可见字符被密码字符屏蔽之前的延迟,以毫秒为单位。此枚举值在Qt 5.4中添加。
    QStyle.SH_Table_GridLineColor 表的网格的RGBA值。
    QStyle.SH_UnderlineShortcut 快捷方式是否下划线。
    QStyle.SH_SpinBox_AnimateButton 在旋转框中按下向上或向下时,为单击设置动画。
    QStyle.SH_SpinBox_KeyPressAutoRepeatRate 自动重复间隔为旋转框按键。
    QStyle.SH_SpinBox_ClickAutoRepeatRate 旋转框鼠标点击的自动重复间隔。
    QStyle.SH_SpinBox_ClickAutoRepeatThreshold 旋转框鼠标点击的自动重复阈值。
    QStyle.SH_SpinBox_SelectOnStep 使用按钮或向上/向下键更改值是否会自动选择文本。
    QStyle.SH_ToolTipLabel_Opacity 表示提示标签不透明度的整数,0是完全透明的,255是完全不透明的。
    QStyle.SH_DrawMenuBarSeparator 指示菜单栏是否绘制分隔符。
    QStyle.SH_TitleBar_ModifyNotification 指示标题栏是否应为已修改的窗口显示“*”。
    QStyle.SH_Button_FocusPolicy 按钮的默认焦点策略。
    QStyle.SH_CustomBase 自定义样式提示的基值。自定义值必须大于此值。
    QStyle.SH_MessageBox_UseBorderForButtonSpacing 一个布尔值,指示在消息框中按钮的行间距使用按钮的边框(计算为按钮高度的一半)。
    QStyle.SH_MessageBox_CenterButtons 一个布尔值,指示消息框中的按钮是否应该居中(参见QDialogButtonBox::setCentated())。
    QStyle.SH_MessageBox_TextInteractionFlags 一个布尔值,指示消息框中的文本是否应允许用户交互(例如选择)。
    QStyle.SH_TitleBar_AutoRaise 一个布尔值,指示当鼠标悬停在标题栏上时是否应该更新标题栏上的控件。
    QStyle.SH_ToolButton_PopupDelay 一个int,指示附加到工具按钮的菜单的弹出延迟(以毫秒为单位)。
    QStyle.SH_FocusFrame_Mask 焦点框架的掩码。
    QStyle.SH_RubberBand_Mask 橡皮筋的面具。
    QStyle.SH_WindowFrame_Mask 窗框的面具。
    QStyle.SH_SpinControls_DisableOnBounds 确定到达自旋范围边界时自旋控件是否显示为禁用。
    QStyle.SH_Dial_BackgroundRole 为拨号小部件定义样式的首选背景角色(如ColorRole)。
    QStyle.SH_ComboBox_LayoutDirection 组合框的布局方向。默认情况下,它应该与QStyleOption::direction变量所指示的相同。
    QStyle.SH_ItemView_EllipsisLocation 应为太长而不适合视图项的项目文本添加省略号的位置。
    QStyle.SH_ItemView_ShowDecorationSelected 选择项目视图中的项目时,还突出显示分支或其他装饰。
    QStyle.SH_ItemView_ActivateItemOnSingleClick 当用户单击项目视图中项目中的项目时发出激活信号。否则,当用户双击项目时发出信号。
    QStyle.SH_Slider_AbsoluteSetButtons 哪些鼠标按钮会导致滑块将值设置为单击的位置。
    QStyle.SH_Slider_PageSetButtons 哪些鼠标按钮导致滑块对值进行分页。
    QStyle.SH_TabBar_ElideMode 标签栏的默认省略样式。
    QStyle.SH_DialogButtonLayout 控制按钮在QDialogButtonBox中的布局方式,返回ButtonLayout枚举。
    QStyle.SH_WizardStyle 控制QWizard的外观。返回一个WizardStyle枚举。
    QStyle.SH_FormLayoutWrapPolicy 为行在QFormLayout中的包装方式提供默认值。返回RowWrapPolicy枚举。
    QStyle.SH_FormLayoutFieldGrowthPolicy 为字段在QFormLayout中的增长方式提供默认值。返回一个FieldGrothPolicy枚举。
    QStyle.SH_FormLayoutFormAlignment 为QFormLayout如何在可用空间内对齐其内容提供默认值。返回对齐枚举。
    QStyle.SH_FormLayoutLabelAlignment 为QFormLayout如何在可用空间内对齐标签提供默认值。返回对齐枚举。
    QStyle.SH_ItemView_ArrowKeysNavigateIntoChildren 控制树视图在展开并按下右箭头键时是否选择第一个子视图。
    QStyle.SH_ComboBox_PopupFrameStyle 绘制组合框弹出菜单时使用的框架样式。
    QStyle.SH_DialogButtonBox_ButtonsHaveIcons 指示QDialogButtonBox中的标准按钮是否应该有图标。
    QStyle.SH_ItemView_MovementWithoutUpdatingSelection 项目视图能够在不更改选择的情况下指示当前项目。
    QStyle.SH_ToolTip_Mask 工具尖端的掩码。
    QStyle.SH_FocusFrame_AboveWidget Focus usFrame堆叠在它“关注”的小部件上方。
    QStyle.SH_TextControl_FocusIndicatorTextCharFormat 指定用于突出显示例如在QTextBrowser中显示的富文本文档中的焦点锚点的文本格式。该格式必须是QStyleHintBack nVariant返回值的变体中返回的QTextCharFormat。OutlinePen属性用于突出显示区域的轮廓,Background Brush用于突出显示区域的背景。
    QStyle.SH_Menu_FlashTriggeredItem 闪光触发项。
    QStyle.SH_Menu_FadeOutOnHide 淡出菜单,而不是立即隐藏它。
    QStyle.SH_TabWidget_DefaultTabPosition 标签栏在标签小部件中的默认位置。
    QStyle.SH_ToolBar_Movable 默认情况下确定工具栏是否可移动。
    QStyle.SH_ItemView_PaintAlternatingRowColorsForEmptyArea QTreeView是否为没有任何项目的区域绘制交替的行颜色。
    QStyle.SH_Menu_Mask 弹出菜单的蒙版。
    QStyle.SH_ItemView_DrawDelegateFrame 确定是否应该有委托小部件的框架。
    QStyle.SH_TabBar_CloseButtonPosition 确定选项卡栏中选项卡上关闭按钮的位置。
    QStyle.SH_DockWidget_ButtonsHaveFrame 确定dockwidget按钮是否应该有框架。默认为真。
    QStyle.SH_ToolButtonStyle 确定使用ToolButtonFollowStyle的工具按钮的默认系统样式。
    QStyle.SH_RequestSoftwareInputPanel 确定何时应由输入小部件请求软件输入面板。返回RequestSoftwareInputPanel类型的枚举。
    QStyle.SH_ScrollBar_Transient 确定样式是否支持瞬态滚动条。瞬态滚动条在内容滚动时出现,在不再需要时消失。
    QStyle.SH_Menu_SupportsSections 确定样式是在菜单中显示部分还是将它们视为普通分隔符。部分是带有文本和图标提示的分隔符。
    QStyle.SH_ToolTip_WakeUpDelay 确定显示工具提示之前的延迟,以毫秒为单位。
    QStyle.SH_ToolTip_FallAsleepDelay 确定显示工具提示时需要新的唤醒时间之前的延迟(以毫秒为单位)。当不需要新的唤醒时,几乎会立即显示用户请求的工具提示。
    QStyle.SH_Widget_Animate 已弃用。改用SH_Widget_Animation_Duration。
    QStyle.SH_Splitter_OpaqueResize 确定在交互移动拆分器时是否动态(不透明地)调整小部件的大小。这个枚举值是在Qt 5.2中引入的。
    QStyle.SH_TabBar_ChangeCurrentDelay 确定在拖动选项卡时更改当前选项卡之前的延迟,以毫秒为单位。此枚举值已在Qt 5.4中引入
    QStyle.SH_ItemView_ScrollMode 样式指定的默认垂直和水平滚动模式。可以用setVerticalScrollMode()和setHorizontalScrollMode()覆盖。Qt 5.7中引入了这个枚举值。
    QStyle.SH_TitleBar_ShowToolTipsOnButtons 确定工具提示是否显示在窗口标题栏按钮上。例如,Mac样式将其设置为false。此枚举值已在Qt 5.10中引入。
    QStyle.SH_Widget_Animation_Duration 确定动画应该持续多长时间(以毫秒为单位)。值等于零意味着动画将被禁用。此枚举值已在Qt 5.10中引入。
    QStyle.SH_ComboBox_AllowWheelScrolling 确定鼠标滚轮是否可用于在QComboBox内滚动。默认情况下,除Mac样式之外的所有样式都启用此枚举值。此枚举值已在Qt 5.10中引入。
    QStyle.SH_SpinBox_ButtonsInsideFrame 确定旋转框按钮是否在行编辑框架内。此枚举值已在Qt 5.11中引入。
    QStyle.SH_SpinBox_StepModifier 确定哪个KeyboardModifier增加了QAbstractSpinBox的步进率。可能的值是NoModifier、ControlModifier(默认)或ShiftModifier。NoModifier禁用此功能。此枚举值已在Qt 5.12中引入。
    QStyle.SH_TabBar_AllowWheelScrolling 确定鼠标滚轮是否可用于在QTabBar的选项卡中循环。此枚举值已在Qt 6.1中引入。
    QStyle.SH_Table_AlwaysDrawLeftTopGridLines 确定在隐藏标题时是否在表格中绘制最左边和顶部的网格线。默认为假。此枚举值已在Qt 6.3中引入。
StandardPixmap
  • PySide6.QtWidgets.QStyle.StandardPixmap

    (继承enum. IntEnum)此枚举描述了可用的标准像素图。标准像素图是可以遵循某些现有GUI样式或指南的像素图。

    Constant Description
    QStyle.SP_TitleBarMinButton 最小化标题栏上的按钮(例如,在QMdiSubWindow中)。
    QStyle.SP_TitleBarMenuButton 标题栏上的菜单按钮。
    QStyle.SP_TitleBarMaxButton 最大化标题栏上的按钮。
    QStyle.SP_TitleBarCloseButton 关闭标题栏上的按钮。
    QStyle.SP_TitleBarNormalButton 标题栏上的正常(恢复)按钮。
    QStyle.SP_TitleBarShadeButton 标题栏上的阴影按钮。
    QStyle.SP_TitleBarUnshadeButton 取消标题栏上的阴影按钮。
    QStyle.SP_TitleBarContextHelpButton 标题栏上的上下文帮助按钮。
    QStyle.SP_MessageBoxInformation “信息”图标。
    QStyle.SP_MessageBoxWarning “警告”图标。
    QStyle.SP_MessageBoxCritical “关键”图标。
    QStyle.SP_MessageBoxQuestion “问题”图标。
    QStyle.SP_DesktopIcon “桌面”图标。
    QStyle.SP_TrashIcon “垃圾”图标。
    QStyle.SP_ComputerIcon “我的电脑”图标。
    QStyle.SP_DriveFDIcon 软盘图标。
    QStyle.SP_DriveHDIcon 硬盘图标。
    QStyle.SP_DriveCDIcon CD图标。
    QStyle.SP_DriveDVDIcon DVD图标。
    QStyle.SP_DriveNetIcon 网络图标。
    QStyle.SP_DirHomeIcon 主目录图标。
    QStyle.SP_DirOpenIcon 打开目录图标。
    QStyle.SP_DirClosedIcon 关闭的目录图标。
    QStyle.SP_DirIcon 目录图标。
    QStyle.SP_DirLinkIcon 目录图标的链接。
    QStyle.SP_DirLinkOpenIcon 打开目录图标的链接。
    QStyle.SP_FileIcon 文件图标。
    QStyle.SP_FileLinkIcon 文件图标的链接。
    QStyle.SP_FileDialogStart 文件对话框中的“开始”图标。
    QStyle.SP_FileDialogEnd 文件对话框中的“结束”图标。
    QStyle.SP_FileDialogToParent 文件对话框中的“父目录”图标。
    QStyle.SP_FileDialogNewFolder 文件对话框中的“创建新文件夹”图标。
    QStyle.SP_FileDialogDetailedView 文件对话框中的详细视图图标。
    QStyle.SP_FileDialogInfoView 文件对话框中的文件信息图标。
    QStyle.SP_FileDialogContentsView 文件对话框中的内容视图图标。
    QStyle.SP_FileDialogListView 文件对话框中的列表视图图标。
    QStyle.SP_FileDialogBack 文件对话框中的向后箭头。
    QStyle.SP_DockWidgetCloseButton 停靠窗口上的关闭按钮(另请参阅QDockWidget)。
    QStyle.SP_ToolBarHorizontalExtensionButton 水平工具栏的扩展按钮。
    QStyle.SP_ToolBarVerticalExtensionButton 垂直工具栏的扩展按钮。
    QStyle.SP_DialogOkButton QDialogButtonBox中标准OK按钮的图标。
    QStyle.SP_DialogCancelButton QDialogButtonBox中标准取消按钮的图标。
    QStyle.SP_DialogHelpButton QDialogButtonBox中标准帮助按钮的图标。
    QStyle.SP_DialogOpenButton QDialogButtonBox中标准打开按钮的图标。
    QStyle.SP_DialogSaveButton QDialogButtonBox中标准保存按钮的图标。
    QStyle.SP_DialogCloseButton QDialogButtonBox中标准关闭按钮的图标。
    QStyle.SP_DialogApplyButton QDialogButtonBox中标准应用按钮的图标。
    QStyle.SP_DialogResetButton QDialogButtonBox中标准重置按钮的图标。
    QStyle.SP_DialogDiscardButton QDialogButtonBox中标准丢弃按钮的图标。
    QStyle.SP_DialogYesButton QDialogButtonBox中标准Yes按钮的图标。
    QStyle.SP_DialogNoButton QDialogButtonBox中标准No按钮的图标。
    QStyle.SP_ArrowUp 图标箭头指向上方。
    QStyle.SP_ArrowDown 图标箭头指向下方。
    QStyle.SP_ArrowLeft 图标箭头指向左侧。
    QStyle.SP_ArrowRight 指向右侧的图标箭头。
    QStyle.SP_ArrowBack 当当前布局方向为LeftToright时等效于SP_ArrowLeft,否则SP_ArrowRight。
    QStyle.SP_ArrowForward 当当前布局方向为LeftToright时等效于SP_ArrowRight,否则SP_ArrowLeft。
    QStyle.SP_CommandLink 用于指示Vista样式命令链接字形的图标。
    QStyle.SP_VistaShield 用于在Windows Vista上指示UAC提示的图标。这将在所有其他平台上返回一个空像素图或图标。
    QStyle.SP_BrowserReload 指示应重新加载当前页面的图标。
    QStyle.SP_BrowserStop 指示页面加载应停止的图标。
    QStyle.SP_MediaPlay 指示媒体应开始播放的图标。
    QStyle.SP_MediaStop 指示媒体应停止播放的图标。
    QStyle.SP_MediaPause 指示媒体应暂停播放的图标。
    QStyle.SP_MediaSkipForward 指示媒体应向前跳过的图标。
    QStyle.SP_MediaSkipBackward 指示媒体应向后跳过的图标。
    QStyle.SP_MediaSeekForward 表示媒体应向前寻找的图标。
    QStyle.SP_MediaSeekBackward 表示媒体应向后查找的图标。
    QStyle.SP_MediaVolume 指示音量控制的图标。
    QStyle.SP_MediaVolumeMuted 指示静音音量控制的图标。
    QStyle.SP_LineEditClearButton QLineEdit中标准清除按钮的图标。
    QStyle.SP_DialogYesToAllButton QDialogButtonBox中标准YesToAll按钮的图标。
    QStyle.SP_DialogNoToAllButton QDialogButtonBox中标准NoToAll按钮的图标。
    QStyle.SP_DialogSaveAllButton QDialogButtonBox中标准SaveAll按钮的图标。
    QStyle.SP_DialogAbortButton QDialogButtonBox中标准Abort按钮的图标。
    QStyle.SP_DialogRetryButton QDialogButtonBox中标准重试按钮的图标。
    QStyle.SP_DialogIgnoreButton QDialogButtonBox中标准忽略按钮的图标。
    QStyle.SP_RestoreDefaultsButton QDialogButtonBox中标准RestoreDefaults按钮的图标。
    QStyle.SP_TabCloseButton QTabBar选项卡中关闭按钮的图标。
    QStyle.SP_CustomBase 自定义标准像素图的基值;自定义值必须大于此值。

方法

方法汇总
方法 描述
combinedLayoutSpacing(controls1: PySide6.QtWidgets.QSizePolicy.ControlType, controls2: PySide6.QtWidgets.QSizePolicy.ControlType, orientation: PySide6.QtCore.Qt.Orientation, option: Union[PySide6.QtWidgets.QStyleOption, NoneType] = None, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> int 返回布局中控件1和控件2之间应使用的间距。方向指定控件是并排放置还是垂直堆叠。option参数可用于传递有关父窗口小部件的额外信息。小部件参数是可选的,如果选项为None,也可以使用。 controls1和controls2是零个或多个控制类型的OR组合。 此函数由布局系统调用。仅当PM_LayoutHorizontalSpacing或PM_Layout VerticalSpacing返回负值时才使用。
name() -> str 返回样式的名称。 此值可用于使用create创建样式。
proxy() -> PySide6.QtWidgets.QStyle 此函数返回此样式的当前代理。默认情况下,大多数样式将返回它们自己。但是,当使用代理样式时,它将允许该样式回调到其代理中。
[Static]alignedRect(direction: PySide6.QtCore.Qt.LayoutDirection, alignment: PySide6.QtCore.Qt.AlignmentFlag, size: PySide6.QtCore.QSize, rectangle: PySide6.QtCore.QRect) -> PySide6.QtCore.QRect 返回指定大小的新矩形,该矩形根据指定的对齐方式和方向与给定矩形对齐。
[Static]sliderPositionFromValue(min: int, max: int, val: int, space: int, upsideDown: bool = False) -> int 将给定的logicalValue转换为像素位置。最小参数映射到0,最大值映射到跨度,其他值均匀分布在两者之间。 如果跨度小于4096,此函数可以处理整个整数范围而不会溢出。 默认情况下,此函数假定水平项目的最大值在右侧,垂直项目的最大数值在底部。将upsideDown参数设置为true可反转此行为。
[Static]sliderValueFromPosition(min: int, max: int, pos: int, space: int, upsideDown: bool = False) -> int 将给定的像素位置转换为逻辑值。0映射到最小参数,跨度映射到最大值,其他值均匀分布在两者之间。 此函数可以处理整个整数范围而不会溢出。 默认情况下,此函数假定水平项目的最大值在右侧,垂直项目的最大数值在底部。将upsideDown参数设置为true可反转此行为。
[Static]visualAlignment(direction: PySide6.QtCore.Qt.LayoutDirection, alignment: PySide6.QtCore.Qt.AlignmentFlag) -> PySide6.QtCore.Qt.AlignmentFlag 根据布局方向,将不带AlignAbsolute的AlignLeft或AlignRight的对齐方式转换为带Align绝对的AlignLeft或AlignRight。其他对齐标志保持不变。 如果未指定水平对齐方式,则函数将返回给定布局方向的默认对齐方式。
[Static]visualPos(direction: PySide6.QtCore.Qt.LayoutDirection, boundingRect: PySide6.QtCore.QRect, logicalPos: PySide6.QtCore.QPoint) -> PySide6.QtCore.QPoint 返回根据指定方向转换为屏幕坐标的给定逻辑位置。执行平移时使用boundingRectangle。
[Static]visualRect(direction: PySide6.QtCore.Qt.LayoutDirection, boundingRect: PySide6.QtCore.QRect, logicalRect: PySide6.QtCore.QRect) -> PySide6.QtCore.QRect 返回根据指定方向转换为屏幕坐标的给定逻辑矩形。执行平移时使用boundingRectangle。 此函数用于支持从右到左的桌面,通常用于subControlRect函数的实现。
drawComplexControl(cc: PySide6.QtWidgets.QStyle.ComplexControl, opt: PySide6.QtWidgets.QStyleOptionComplex, p: PySide6.QtGui.QPainter, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> None 使用提供的具有选项指定的样式选项的绘制器绘制给定的控件。 小部件参数是可选的,可以用来帮助绘制控件。 option参数是指向QStyleOptionComplex对象的指针,该对象可以使用qstyleoption_cast函数强制转换为正确的子类。请注意,指定选项的rect成员必须在逻辑坐标中。在调用drawPrimitive或drawControl函数之前,此函数的重新实现应使用visualRect将逻辑坐标更改为屏幕坐标。 下表列出了复杂的控件元素及其关联的样式选项子类。样式选项包含绘制控件所需的所有参数,包括QStyleOption::state,它保存绘制时使用的样式标志。该表还描述了在将给定选项强制转换为适当的子类时设置的标志。
drawItemPixmap(painter: PySide6.QtGui.QPainter, rect: PySide6.QtCore.QRect, alignment: int, pixmap: Union[PySide6.QtGui.QPixmap, PySide6.QtGui.QImage, str]) -> None 使用提供的绘制器,根据指定的对齐方式,在指定的矩形中绘制给定的像素图。
drawItemText(painter: PySide6.QtGui.QPainter, rect: PySide6.QtCore.QRect, flags: int, pal: Union[PySide6.QtGui.QPalette, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor], enabled: bool, text: str, textRole: PySide6.QtGui.QPalette.ColorRole = Instance(PySide6.QtGui.QPalette.NoRole)) -> None 使用提供的画家和调色板在指定的矩形中绘制给定的文本。 文本是用画家的笔绘制的,并根据指定的对齐方式对齐和换行。如果指定了明确的textRole,则使用给定角色的调色板颜色绘制文本。enabled参数表示项目是否已启用;当重新实现此函数时,启用的参数应该会影响项目的绘制方式。
drawPrimitive(pe: PySide6.QtWidgets.QStyle.PrimitiveElement, opt: PySide6.QtWidgets.QStyleOption, p: PySide6.QtGui.QPainter, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> None 使用选项指定的样式选项,使用提供的绘制器绘制给定的基本元素。 小部件参数是可选的,并且可能包含一个小部件,该小部件可能有助于绘制基元。 下表列出了基本元素及其关联的样式选项子类。样式选项包含绘制元素所需的所有参数,包括QStyleOption::state,它保存绘制时使用的样式标志。该表还描述了在将给定选项强制转换为适当的子类时设置的标志。 请注意,如果这里没有列出基元元素,那是因为它使用了一个普通的QStyleOption对象。
generatedIconPixmap(iconMode: PySide6.QtGui.QIcon.Mode, pixmap: Union[PySide6.QtGui.QPixmap, PySide6.QtGui.QImage, str], opt: PySide6.QtWidgets.QStyleOption) -> PySide6.QtGui.QPixmap 返回给定像素图的副本,其样式符合指定的iconMode,并考虑选项指定的调色板。 选项参数可以传递额外的信息,但它必须包含一个选项板。 请注意,并不是所有的像素图都符合,在这种情况下,返回的像素图是一个普通副本。
hitTestComplexControl(cc: PySide6.QtWidgets.QStyle.ComplexControl, opt: PySide6.QtWidgets.QStyleOptionComplex, pt: PySide6.QtCore.QPoint, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> PySide6.QtWidgets.QStyle.SubControl 返回给定复杂控件中给定位置的子控件使用选项指定的样式选项。 请注意,位置以屏幕坐标表示。 选项参数是指向QStyleOptionComplex对象或其子类之一的指针。可以使用qstyleoption_cast函数将对象强制转换为适当的类型。有关详细信息,请参见drawComplexControl。小部件参数是可选的,可以包含函数的附加信息。
itemPixmapRect(r: PySide6.QtCore.QRect, flags: int, pixmap: Union[PySide6.QtGui.QPixmap, PySide6.QtGui.QImage, str]) -> PySide6.QtCore.QRect 返回给定矩形内的区域,根据定义的对齐方式在该区域中绘制指定的像素图。
itemTextRect(fm: PySide6.QtGui.QFontMetrics, r: PySide6.QtCore.QRect, flags: int, enabled: bool, text: str) -> PySide6.QtCore.QRect 返回给定矩形中的区域,根据指定的字体度量和对齐方式在该区域中绘制所提供的文本。enabled参数指示关联项目是否已启用。 如果给定的矩形大于渲染文本所需的面积,则返回的矩形将根据指定的对齐方式在矩形内偏移。例如,如果对齐方式为AlignCenter,则返回的矩形将在矩形内居中。如果给定的矩形小于所需的面积,则返回的矩形将是最小的矩形,其大小足以渲染文本。
layoutSpacing(control1: PySide6.QtWidgets.QSizePolicy.ControlType, control2: PySide6.QtWidgets.QSizePolicy.ControlType, orientation: PySide6.QtCore.Qt.Orientation, option: Union[PySide6.QtWidgets.QStyleOption, NoneType] = None, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> int 返回布局中控件1和控件2之间应使用的间距。方向指定控件是并排放置还是垂直堆叠。option参数可用于传递有关父窗口小部件的额外信息。小部件参数是可选的,如果选项为None,也可以使用。 此函数由布局系统调用。仅当PM_LayoutHorizontalSpacing或PM_Layout VerticalSpacing返回负值时才使用。
pixelMetric(metric: PySide6.QtWidgets.QStyle.PixelMetric, option: Union[PySide6.QtWidgets.QStyleOption, NoneType] = None, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> int 返回给定像素度量的值。 指定的选项和小部件可以用于计算度量。通常,不使用小部件参数。可以使用qstyleoption_cast函数将该选项强制转换为适当的类型。请注意,即使PixelMetrics可以使用该选项,该选项也可能为零。有关适当的选项强制转换,请参阅下表: 见下方补充 一些像素度量是从窗口小部件中调用的,而一些仅由样式内部调用。如果度量不是由小部件调用的,则由样式作者自行决定是否使用它。对于某些样式,这可能不合适。
polish(application: PySide6.QtWidgets.QApplication) -> None polish(palette: Union[PySide6.QtGui.QPalette, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor]) -> None polish(widget: PySide6.QtWidgets.QWidget) -> None 这是一个重载函数。给定应用程序对象的初始化延迟。 这是一个重载函数。给定应用程序对象的初始化延迟。 初始化给定小部件的外观。 在每个小部件完全创建之后,但就在第一次显示之前的某个时刻,都会为其调用此函数。 请注意,默认实现不执行任何操作。该函数中合理的操作可能是为小部件调用QWidget::setBackgroundMode函数。例如,不要使用该函数来设置几何图形。重新实现此功能提供了一个后门,通过它可以改变小部件的外观,但使用Qt风格的引擎,很少需要实现此功能;重新实现drawItemPixmap、drawItemText、drawPrimitive等。 inherits函数可以提供足够的信息来允许类特定的自定义。但是,由于新的QStyle子类预计可以合理地与所有当前和未来的小部件配合使用,因此建议有限地使用硬编码自定义。
sizeFromContents(ct: PySide6.QtWidgets.QStyle.ContentsType, opt: PySide6.QtWidgets.QStyleOption, contentsSize: PySide6.QtCore.QSize, w: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> PySide6.QtCore.QSize 根据提供的内容size,返回指定选项和类型所描述的元素的大小。 option参数是指向QStyleOption或其子类之一的指针。可以使用qstyleoption_cast函数将该选项强制转换为适当的类型。小部件是一个可选参数,可以包含用于计算大小的额外信息。 有关适当的选项强制转换,请参见下表补充
standardIcon(standardIcon: PySide6.QtWidgets.QStyle.StandardPixmap, option: Union[PySide6.QtWidgets.QStyleOption, NoneType] = None, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> PySide6.QtGui.QIcon 返回给定标准图标的图标。 standardIcon是一个标准的像素图,它可以遵循一些现有的GUI样式或指南。选项参数可用于传递定义适当图标时所需的额外信息。小部件参数是可选的,也可以用来帮助确定图标。
standardPalette() -> PySide6.QtGui.QPalette 返回样式的标准调色板。 请注意,在支持系统颜色的系统上,不使用样式的标准调色板。特别是,Windows Vista和Mac风格不使用标准调色板,而是使用本地主题引擎。对于这些样式,您不应该使用setPalette设置调色板。
standardPixmap(standardPixmap: PySide6.QtWidgets.QStyle.StandardPixmap, opt: Union[PySide6.QtWidgets.QStyleOption, NoneType] = None, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> PySide6.QtGui.QPixmap 返回给定标准像素映射的像素映射。 标准像素图是一种可以遵循某些现有GUI样式或指导原则的像素图。选项参数可用于传递定义适当的像素图时所需的额外信息。小部件参数是可选的,也可以用来帮助确定像素图。 调用standardPixmap的开发人员应改为调用standardIcon重新实现standardPixmap的开发人员应该改为重新实现standardIcon。
styleHint(stylehint: PySide6.QtWidgets.QStyle.StyleHint, opt: Union[PySide6.QtWidgets.QStyleOption, NoneType] = None, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None, returnData: Union[PySide6.QtWidgets.QStyleHintReturn, NoneType] = None) -> int 返回一个整数,表示所提供的样式选项所描述的给定小部件的指定样式提示。 returnData用于查询小部件需要比styleHint返回的整数更详细的数据时。有关详细信息,请参阅QStyleHintReturn类描述。
subControlRect(cc: PySide6.QtWidgets.QStyle.ComplexControl, opt: PySide6.QtWidgets.QStyleOptionComplex, sc: PySide6.QtWidgets.QStyle.SubControl, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> PySide6.QtCore.QRect 返回包含给定复杂控件的指定子控件的矩形使用选项指定的样式。矩形是在屏幕坐标中定义的。 选项参数是指向QStyleOptionComplex或其子类之一的指针,可以使用qstyleoption_cast函数将其强制转换为适当的类型。有关详细信息,请参见drawComplexControl。该小部件是可选的,可以包含该功能的附加信息。
subElementRect(subElement: PySide6.QtWidgets.QStyle.SubElement, option: PySide6.QtWidgets.QStyleOption, widget: Union[PySide6.QtWidgets.QWidget, NoneType] = None) -> PySide6.QtCore.QRect 返回给定元素的子区域,如所提供的样式选项中所述。返回的矩形是在屏幕坐标中定义的。 小部件参数是可选的,可以用来帮助确定区域。可以使用QStyleOption_cast函数将QStyleOption对象强制转换为适当的类型。有关适当的选项强制转换,请参见下表:
unpolish(application: PySide6.QtWidgets.QApplication) -> None unpolish(widget: PySide6.QtWidgets.QWidget) -> None 这是一个重载函数。取消初始化给定的应用程序。 取消初始化给定小部件的外观。 此函数是polish的对应函数。每当风格发生动态变化时,每个经过抛光的小部件都会调用它;前一种风格必须先不修饰其设置,然后新的风格才能再次修饰它们。 请注意,只有在小部件被销毁时才会调用unpublish。在某些情况下,这可能会导致问题,例如,如果您从UI中删除小部件,缓存它,然后在样式更改后重新插入它;Qt的一些类缓存它们的小部件。
drawComplexControl
复杂控制 QstyleOptionComplex子类 样式标志 描述
CC_SpinBox QStyleOptionSpinBox State_Enabled 如果启用了数字调整框,则进行设置。
CC_SpinBox QStyleOptionSpinBox State_HasFocus 设置旋转框是否具有输入焦点。
CC_ComboBox QStyleOptionComboBox State_Enabled 如果组合框已启用,则进行设置。
CC_ComboBox QStyleOptionComboBox State_HasFocus 如果组合框具有输入焦点,则进行设置。
CC_ScrollBar QStyleOptionSlider State_Enabled 如果滚动条已启用,则进行设置。
CC_ScrollBar QStyleOptionSlider State_HasFocus 如果滚动条具有输入焦点,则进行设置。
CC_Slider QStyleOptionSlider State_Enabled 如果滑块已启用,则进行设置。
CC_Slider QStyleOptionSlider State_HasFocus 设置滑块是否具有输入焦点。
CC_Dial QStyleOptionSlider State_Enabled 如果已启用拨号,则进行设置。
CC_Dial QStyleOptionSlider State_HasFocus 如果表盘有输入焦点,则进行设置。
CC_ToolButton QStyleOptionToolButton State_Enabled 如果启用了工具按钮,则进行设置。
CC_ToolButton QStyleOptionToolButton State_HasFocus 设置工具按钮是否具有输入焦点。
CC_ToolButton QStyleOptionToolButton State_DownArrow 如果工具按钮按下即按下鼠标按钮或空格键,则进行设置。
CC_ToolButton QStyleOptionToolButton State_On 如果工具按钮是切换按钮并处于打开状态,则进行设置。
CC_ToolButton QStyleOptionToolButton State_AutoRaise 如果工具按钮已启用自动提升,则进行设置。
CC_ToolButton QStyleOptionToolButton State_Raised 如果启用自动抬起时按钮未按下、未打开且不包含鼠标,则进行设置。
CC_TitleBar QStyleOptionTitleBar State_Enabled 如果标题栏已启用,则进行设置。
drawPrimitive
基本元素 QStyleOption子类 样式标志 描述
PE_FrameFocusRect QStyleOptionFocusRect State_FocusAtBorder 焦点是在边界还是在小部件内部。
PE_IndicatorCheckBox QStyleOptionButton State_NoChange 表示"三态"复选框。
PE_IndicatorCheckBox QStyleOptionButton State_On 表示已检查指示器。
PE_IndicatorRadioButton QStyleOptionButton State_On 指示已选择单选按钮。
State_NoChange Indicates a “tri-state” controller. State_On 指示已选择单选按钮。
State_Enabled Indicates the controller is enabled. State_On 指示已选择单选按钮。
PE_IndicatorBranch QStyleOption State_Children 指示应绘制用于展开树以显示子项的控件。
PE_IndicatorBranch QStyleOption State_Item 指示应绘制一个水平分支用于显示子项。
PE_IndicatorBranch QStyleOption State_Open 指示树状分支已展开。
PE_IndicatorBranch QStyleOption State_Sibling 指示应绘制一条垂直线用于显示同级项目。
PE_IndicatorHeaderArrow QStyleOptionHeader State_UpArrow 表示应向上绘制箭头;否则它应该会掉下来。
PE_FrameGroupBox , PE_Frame , PE_FrameLineEdit , PE_FrameMenu , PE_FrameDockWidget , PE_FrameWindow QStyleOptionFrame State_Sunken 指示框架应凹陷。
PE_IndicatorToolBarHandle QStyleOption State_Horizontal 指示窗口句柄是水平的,而不是垂直的。
PE_IndicatorSpinPlus , PE_IndicatorSpinMinus , PE_IndicatorSpinUp , PE_IndicatorSpinDown , QStyleOptionSpinBox State_Sunken 表示按钮已按下。
PE_PanelButtonCommand QStyleOptionButton State_Enabled 如果按钮已启用,则进行设置。
PE_PanelButtonCommand QStyleOptionButton State_HasFocus 如果按钮具有输入焦点,则进行设置。
PE_PanelButtonCommand QStyleOptionButton State_Raised 如果按钮未按下、未打开和未平放,则进行设置。
PE_PanelButtonCommand QStyleOptionButton State_On 如果该按钮是切换按钮并处于打开状态,则进行设置。
PE_PanelButtonCommand QStyleOptionButton State_Sunken 设置按钮是否按下即,按下按钮上的鼠标按钮或空格键。
pixelMetric
像素度量 QStyleOption子类
PM_SliderControlThickness QStyleOptionSlider
PM_SliderLength QStyleOptionSlider
PM_SliderTickmarkOffset QStyleOptionSlider
PM_SliderSpaceAvailable QStyleOptionSlider
PM_ScrollBarExtent QStyleOptionSlider
PM_TabBarTabOverlap QStyleOptionTab
PM_TabBarTabHSpace QStyleOptionTab
PM_TabBarTabVSpace QStyleOptionTab
PM_TabBarBaseHeight QStyleOptionTab
PM_TabBarBaseOverlap QStyleOptionTab
sizeFromContents
Contents Type QStyleOption子类
CT_CheckBox QStyleOptionButton
CT_ComboBox QStyleOptionComboBox
CT_GroupBox QStyleOptionGroupBox
CT_HeaderSection QStyleOptionHeader
CT_ItemViewItem QStyleOptionViewItem
CT_LineEdit QStyleOptionFrame
CT_MdiControls QStyleOptionComplex
CT_Menu QStyleOption
CT_MenuItem QStyleOptionMenuItem
CT_MenuBar QStyleOptionMenuItem
CT_MenuBarItem QStyleOptionMenuItem
CT_ProgressBar QStyleOptionProgressBar
CT_PushButton QStyleOptionButton
CT_RadioButton QStyleOptionButton
CT_ScrollBar QStyleOptionSlider
CT_SizeGrip QStyleOption
CT_Slider QStyleOptionSlider
CT_SpinBox QStyleOptionSpinBox
CT_Splitter QStyleOption
CT_TabBarTab QStyleOptionTab
CT_TabWidget QStyleOptionTabWidgetFrame
CT_ToolButton QStyleOptionToolButton
subElementRect
子元素 QStyleOption子类
SE_PushButtonContents QStyleOptionButton
SE_PushButtonFocusRect QStyleOptionButton
SE_PushButtonBevel QStyleOptionButton
SE_CheckBoxIndicator QStyleOptionButton
SE_CheckBoxContents QStyleOptionButton
SE_CheckBoxFocusRect QStyleOptionButton
SE_RadioButtonIndicator QStyleOptionButton
SE_RadioButtonContents QStyleOptionButton
SE_RadioButtonFocusRect QStyleOptionButton
SE_ComboBoxFocusRect QStyleOptionComboBox
SE_ProgressBarGroove QStyleOptionProgressBar
SE_ProgressBarContents QStyleOptionProgressBar
SE_ProgressBarLabel QStyleOptionProgressBar

示例

import sys
from PySide6.QtWidgets import QApplication,QWidget,QVBoxLayout,QStyleFactory,QPushButton,QComboBox,QSpinBox


class MyWindow(QWidget):
    def __init__(self,parent=None):
        super().__init__(parent)
        self.setupJi()

    def setupJi(self):
        v=QVBoxLayout(self)
        self.comb=QComboBox()
        self.spinBox=QSpinBox()

        self.pushButton=QPushButton("Close")

        v.addWidget(self.comb)
        v.addWidget(self.spinBox)
        v.addWidget(self.pushButton)

        self.comb.addItems(QStyleFactory.keys())# 将风格名称添加到下拉列表中

        self.pushButton.clicked.connect(self.close)


class MyApplication(QApplication):
    def __init__(self,argv):
        super().__init__(argv)

        window=MyWindow()# 创建窗口
        style=QStyleFactory.create(window.comb.currentText())# 创建风格

        self.setStyle(style)# 设置初始风格
        window.comb.currentTextChanged.connect(self.reSetStyle)# 信号与槽的连接
        window.show()

        sys.exit(self.exec())

    def reSetStyle(self,new_style):  # 槽函数
        style=QStyleFactory.create(new_style)# 创建新风格
        self.setStyle(style)# 设置新风格
        print("当前风格是:",new_style)# 输出当前的风格


if __name__=='__main__':
    app=MyApplication(sys.argv)

Qss官方文档

Customizing Qt Widgets Using Style Sheets

Qt Style Sheets Reference

官方参考文档才是最官方全面的文档,有时间最好仔细阅读一下。

主要包括:

  • 可应用样式表的控件列表
  • 属性列表
  • 图标列表
  • 属性值列表
  • 伪类选择器列表
  • 子控件控制列表

内容非常多,在此就不展开了。

可设置样式小部件列表

下表列出了可以使用样式表自定义的Qt小部件:

小部件 说明
QAbstractScrollArea 支持盒子模型。
QAbstractScrollArea的所有衍生产品,包括QTextEdit和QAbstractItemView(所有项目视图类),都支持使用背景附件的可滚动背景。将背景附件设置为固定会提供不随视口滚动的背景图像。将背景附件设置为滚动,当滚动条移动时滚动背景图像。

有关示例,请参阅自定义QAbstractScrollArea。
QCheckBox 支持框模型。可以使用::指示符子控件设置检查指示符的样式。默认情况下,指示符放置在小部件的Contents矩形的左上角。
行间距属性指定检查指示符和文本之间的行间距。

有关示例,请参阅自定义QCheckBox。
QColumnView 可以使用图像属性设置手柄样式。箭头指示器可以使用::左箭头子控件和::右箭头子控件设置样式。
QComboBox 组合框周围的框架可以使用框模型设置样式。下拉按钮可以使用::drop-down子控件设置样式。默认情况下,下拉按钮放置在小部件填充矩形的右上角。下拉按钮内的箭头标记可以使用::d自己的箭头子控件设置样式。默认情况下,箭头放置在下拉子控件的内容矩形的中心。
可以使用占位符-文本-颜色属性设置占位符文本的颜色。

有关示例,请参阅自定义QComboBox。
QDateEdit 请参阅QSpinBox。
QDateTimeEdit 请参阅QSpinBox。
QDialog 仅支持background、backder-clip和backder-source属性。
警告:确保为自定义小部件定义Q_OBJECT宏。
QDialogButtonBox 可以使用按钮布局属性更改按钮的布局。
QDockWidget 停靠时支持标题栏和标题栏按钮的样式。
停靠小部件边框可以使用边框属性设置样式。::标题子控件可用于自定义标题栏。关闭和浮动按钮分别使用::c失去按钮和::float按钮相对于::标题子控件定位。

当标题栏垂直时,设置:垂直伪类。此外,根据QDockWidget::DockWidgetFeature,设置:可关闭、可浮动和可移动的伪状态。
注意:使用QMainWindow::分隔符设置调整大小手柄的样式。
警告:当QDockWidget取消停靠时,样式表无效,因为Qt在取消停靠时使用本机顶级窗口。
有关示例,请参阅自定义QDockWidget。
QDoubleSpinBox 请参阅QSpinBox。
QFrame 支持盒子模型。
从4.3开始,在QLabel上设置样式表会自动将QFrame::frameStyle属性设置为QFrame::StyledPanel。

有关示例,请参阅自定义QFrame。
QGroupBox 支持框模型。标题可以使用::标题子控件设置样式。默认情况下,标题的放置取决于QGroupBox::文本对齐。
对于可检查的QGroupBox,标题包含检查指示符。指示符使用::指示符子控件设置样式。行间距属性可用于控制文本和指示符之间的行间距。

有关示例,请参阅自定义QGroupBox。
QHeaderView 支持框模型。标题视图的各部分使用::节子控件设置样式。节子控件支持:中间、第一、最后、唯一一、下一个选定、上一个选定、选定和选中的伪状态。
排序指示符可以使用::向上箭头和::d自己的箭头子控件设置样式。

有关示例,请参阅自定义QHeaderView。
QLabel 支持盒子模型。不支持:悬停伪状态。
从4.3开始,在QLabel上设置样式表会自动将QFrame::frameStyle属性设置为QFrame::StyledPanel。

有关示例,请参阅自定义QFrame(QLabel派生自QFrame)。
QLineEdit 支持盒子模型。
所选项目的颜色和背景分别使用选择颜色和选择背景颜色设置样式。

可以使用占位符-文本-颜色属性设置占位符文本的颜色。

密码字符可以使用lineeitt-passve-字符属性设置样式。

密码掩码延迟可以使用lineedit密码掩码延迟更改

有关示例,请参阅自定义QLineEdit。
QListWidget 请参见QListView。
QMainWindow 支持分隔符的样式
使用QDockWidget时,QMainWindow中的分隔符使用::分隔符子控件设置样式。

有关示例,请参阅自定义QMainWindow。
QMenu 支持盒子模型。
使用::项目子控件设置单个项目的样式。除了通常支持的伪状态之外,项目子控件还支持:选择、:默认、:独占和非独占伪状态。

可检查菜单项的指示符使用::指示符子控件设置样式。

分隔符使用::分隔符子控件设置样式。

对于具有子菜单的项目,箭头标记使用右箭头和左箭头设置样式。

滚动条使用::滚动条设置样式。

撕开的样式使用::撕开。

有关示例,请参阅自定义QMenu。
QMenuBar 支持框模型。行间距属性指定菜单项之间的行间距。单个项使用::项子控件设置样式。
警告:在Qt/Mac上运行时,菜单栏通常嵌入到系统范围的菜单栏中。在这种情况下,样式表将无效。

有关示例,请参阅自定义QMenuBar。
QMessageBox 消息框-文本-交互-标志属性可用于更改与消息框中文本的交互。
QProgressBar 支持框模型。进度条的块可以使用::c大块子控件设置样式。块显示在小部件的内容矩形上。
如果进度条显示文本,请使用text-对齐属性来定位文本。

不确定进度条具有:不确定伪状态集。

有关示例,请参阅自定义QProgressBar。
QPushButton 支持盒子模型。支持: default,:持平,:选中的伪状态。
从5.15开始,图标属性可以设置为覆盖按钮图标。

对于带有菜单的QPushButton,菜单指示器使用::菜单指示器子控件设置样式。可以使用:打开和:关闭伪状态自定义可检查按钮的外观。

警告:如果您只在QPushButton上设置背景颜色,除非您将边框属性设置为某个值,否则背景可能不会出现。这是因为默认情况下,QPushButton绘制的本机边框与背景颜色完全重叠。例如,
QRadioButton 支持框模型。可以使用::指示符子控件设置检查指示符的样式。默认情况下,指示符放置在小部件的Contents矩形的左上角。
行间距属性指定检查指示符和文本之间的行间距。

有关示例,请参阅自定义QRadioButton。
QScrollBar 支持框模型。小部件的Contents矩形被认为是滑块移动的凹槽。QScrollBar的范围(即宽度或高度,取决于方向)分别使用宽度或高度属性设置。要确定方向,请使用:水平和:垂直伪状态。
滑块可以使用::手柄子控件设置样式。设置最小宽度或最小高度根据方向为滑块提供大小约束。

::add子控件可用于设置按钮样式以添加行。默认情况下,添加行子控件放置在小部件边框矩形的右上角。根据方向,::右箭头或::d自己的箭头。默认情况下,箭头放置在添加行子控件的Contents矩形的中心。

::子行子控件可用于设置按钮样式以减去线条。默认情况下,子行子控件放置在小部件边框矩形的右下角。根据方向,::左箭头或::向上箭头。默认情况下,箭头放置在子行子控件的Contents矩形的中心。

::子页面子控件可用于设置减去页面的滑块区域的样式。::add页子控件可用于设置添加页面的滑块区域的样式。

有关示例,请参阅自定义QScrollBar。
QSizeGrip 支持宽度、高度和图像属性。
有关示例,请参阅自定义QSizeGrip。
QSlider 支持盒子模型。对于水平滑块,必须提供最小宽度和高度属性。对于垂直滑块,必须提供最小高度和宽度属性。
滑块的凹槽使用::凹槽设置样式。凹槽默认位于小部件的Contents矩形中。滑块的拇指使用::手柄子控件设置样式。子控件在凹槽子控件的Contents矩形中移动。

有关示例,请参阅自定义QSlider。
QSpinBox 旋转框的框架可以使用框模型设置样式。
向上按钮和箭头可以使用::向上按钮和::向上箭头子控件设置样式。默认情况下,向上按钮位于小部件填充矩形的右上角。如果没有明确的大小,它将占据其参考矩形高度的一半。向上箭头位于向上按钮的内容矩形的中心。

向下按钮和箭头可以使用::d自己的按钮和::d自己的箭头子控件设置样式。默认情况下,向下按钮放置在小部件填充矩形的右下角。如果没有明确的大小,它占据其参考矩形高度的一半。底部箭头放置在底部按钮的内容矩形的中心。

有关示例,请参阅自定义QSpinBox。
QSplitter 支持盒子模型。拆分器的句柄使用::句柄子控件设置样式。
有关示例,请参阅自定义QSplitter。
QStatusBar 仅支持背景属性。单个项目的框架可以使用::项目子控件设置样式。
有关示例,请参阅自定义QStatusBar。
QTabBar 可以使用::选项卡子控件设置单个选项卡的样式。使用::c关闭按钮选项卡支持: only-one,:first,:last,:mid,:prever-选定,:next-选定,:选定的伪状态。
根据选项卡的方向,顶部、左侧、右侧、底部的伪状态。

通过使用负边距或使用绝对位置方案为所选状态创建重叠选项卡。

QTabBar的撕裂指示器使用::撕裂子控件设置样式。

QTabBar使用两个QToolButton作为其滚动器,可以使用QTabBar QToolButton选择器设置样式。要指定滚动按钮的宽度,请使用::滚动子控件。

QTabBar中选项卡的对齐方式使用对齐属性设置样式。

要更改QTabBar在QTabWidget中的位置,请使用tab-bar子控件(并设置子控件位置)。

有关示例,请参阅自定义QTabBar。
QTabWidget 选项卡小部件的框架使用::窗格子控件设置样式。左角和右角分别使用::左角和::右角设置样式。选项卡栏的位置使用::选项卡栏子控件控制。
默认情况下,子控件在QWindowsStyle中具有QTabWidget的位置。要将QTabBar放在中间,请设置选项卡栏子控件的子控件位置。

根据选项卡的方向,顶部、左侧、右侧、底部的伪状态。

有关示例,请参阅自定义QTabWidget。
QTableView 支持框模型。启用交替行颜色后,可以使用备用背景颜色属性设置交替颜色的样式。
所选项目的颜色和背景分别使用选择颜色和选择背景颜色设置样式。

QTableView中的角小部件实现为QAbstractButton,可以使用“QTableView QTableCornerButton::部分”选择器设置样式。

警告:如果您只在QTableCornerButton上设置背景颜色,除非您将边框属性设置为某个值,否则背景可能不会出现。这是因为默认情况下,QTableCornerButton绘制的本机边框与背景颜色完全重叠。

可以使用grdline-color属性指定网格的颜色。

请参阅QAbsractScrollArea来设置可滚动背景的样式。

有关示例,请参阅自定义QTableView。
QTableWidget 请参见QTableView。
QTextEdit 支持盒子模型。
选定文本的颜色和背景分别使用选择颜色和选择背景颜色设置样式。

可以使用占位符-文本-颜色属性设置占位符文本的颜色。

请参阅QAbsractScrollArea来设置可滚动背景的样式。
QTimeEdit 请参阅QSpinBox。
QToolBar 支持盒子模型。
根据工具栏分组的区域,顶部、左侧、右侧、底部的伪状态。

第一个,最后一个,中间,只有一个伪状态指示工具栏在线组中的位置(请参阅QStyleOptionToolBar::的位置。

QToolBar的分隔符使用::分隔符子控件设置样式。

手柄(用于移动工具栏)使用::手柄子控件设置样式。

有关示例,请参阅自定义QToolBar。
QToolButton 支持盒子模型。
如果QToolButton有一个菜单,::菜单指示器子控件可用于设置指示器的样式。默认情况下,菜单指示器位于小部件填充矩形的右下角。

如果QToolButton处于QToolButton::MenuButtonPopup模式,则::菜单按钮子控件用于绘制菜单按钮。::菜单箭头子控件用于绘制菜单按钮内部的菜单箭头。默认情况下,它位于菜单按钮子控件的Contents矩形的中心。

当QToolButton显示箭头时,使用::向上箭头、::d自己的箭头、::左箭头和::右箭头子控件。

警告:如果您只在QToolButton上设置背景颜色,除非您将边框属性设置为某个值,否则不会显示背景。这是因为默认情况下,QToolButton绘制的本机边框与背景颜色完全重叠。
有关示例,请参阅自定义QToolButton。
QToolBox 支持盒子模型。
各个选项卡可以使用::选项卡子控件设置样式。这些选项卡支持: only-one、:first、:last、:中间、:prever-选择、:next-选择、:选择的伪状态。
QToolTip 支持盒子模型。不透明度属性控制工具提示的不透明度。
有关示例,请参阅自定义QFrame(QToolTip是QFrame)。
QTreeView 支持框模型。启用交替行颜色后,可以使用备用背景颜色属性设置交替颜色的样式。
所选项目的颜色和背景分别使用选择颜色和选择背景颜色设置样式。

选择行为由展示-装饰-选择属性控制。

树视图的分支可以使用::branch子控件设置样式。::branch子控件支持: open、:off、:has-sible和:has-child伪状态。

使用::项目子控件对QTreeView中的项目进行更细粒度的控制。

请参阅QAbsractScrollArea来设置可滚动背景的样式。

有关设置分支样式的示例,请参阅自定义QTreeView。
QTreeWidget 请参阅QTreeView。
QWidget 仅支持background、backder-clip和backder-source属性。
如果您从QWidget子类化,则需要为您的自定义QWidget提供一个绘制事件
警告:确保为自定义小部件定义Q_OBJECT宏。

属性表

下表列出了Qt样式表支持的所有属性。可以为属性赋予哪些值取决于属性的类型。除非另有说明,否则以下属性适用于所有小部件。标有星号*的属性特定于Qt,在CSS2或CSS3中没有等效项。

属性 类型 说明
alternate-background-color Brush QAbstractItemView子类中使用的替代背景颜色。
如果未设置此属性,则默认值为为调色板的AlternateBase角色设置的任何内容。
另请参阅背景和选择背景颜色。
background Background 用于设置背景的速记符号。相当于指定背景颜色、背景图像、背景重复和/或背景位置。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QDialog、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSplitter、QTextEdit、QToolTip和普通QWidgets支持此属性。

通常,需要设置类似于Qt::BrushStyle中样式的填充模式。您可以使用Qt::SolidPattern、Qt::RadialGRadientPattern、Qt::LinearGRadientPattern和Qt::ConicalGRadientPattern的背景颜色属性。其他模式可以通过创建包含该模式的背景图像轻松实现。
另请参阅background-origin, selection-background-color, background-clip, background-attachment and alternate-background-color
background-color Brush 用于小部件的背景颜色。
background-image Url 用于小部件的背景图像。图像的半透明部分让背景颜色闪闪发光。
background-repeat Repeat 是否以及如何重复背景图像以填充背景原点矩形。
如果未指定此属性,则在两个方向重复背景图像(重复)。
background-position Alignment 背景原点矩形内背景图像的对齐方式。
如果未指定此属性,则对齐方式为左上角。
background-attachment Attachment 确定QAbstractScrollArea中的背景图像是相对于视口滚动还是固定。默认情况下,背景图像随视口滚动。
另见背景background
background-clip Origin 小部件的矩形,其中绘制了背景。
此属性指定背景颜色和背景图像剪辑到的矩形。

QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QDialog、QFrame、QGroupBox、QLabel、QPushButton、QRadioButton、QSplitter、QTextEdit、QToolTip和普通QWidgets支持此属性。

如果未指定此属性,则默认为边框。
background-origin Origin 小部件的背景矩形,与背景位置和背景图像结合使用。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QDialog、QFrame、QGroupBox、QLabel、QPushButton、QRadioButton、QSplitter、QTextEdit、QToolTip和普通QWidgets支持此属性。

如果未指定此属性,则默认为填充。另请参阅background and The Box Model.背景和盒子模型。
border Border 用于设置小部件边框的速记符号。相当于指定边框颜色、边框样式和/或边框宽度。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSplitter、QTextEdit、QToolTip和普通QWidgets支持此属性。
border-top Border 用于设置小部件顶部边框的速记符号。等效于指定边框-顶部-颜色、边框-顶部-样式和/或边框-顶部-宽度。
border-right Border 用于设置小部件右边框的速记符号。相当于指定边框右颜色、边框右样式和/或边框右宽度。
border-bottom Border 用于设置小部件底部边框的速记符号。相当于指定border-bod-color、border-bod-style和/或border-bod-wide。
border-left Border 用于设置小部件左边框的速记符号。相当于指定边框左颜色、边框左样式和/或边框左宽度。
border-color Box Colors 所有边框边缘的颜色。等效于指定边框-顶部-颜色、边框-右侧-颜色、边框-底部-颜色和边框-左侧-颜色。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSplitter、QTextEdit、QToolTip和普通QWidgets支持此属性。

如果未指定此属性,则默认为color(即小部件的前景色)。另请参阅边框样式、边框宽度、边框图像和框模型。
border-top-color Brush 边框顶部边缘的颜色。
border-right-color Brush 边框右边缘的颜色。
border-bottom-color Brush 边框底部边缘的颜色。
border-left-color Brush 边框左边缘的颜色。
border-image Border Image 用于填充边框的图像。图像被切割成九个部分,必要时适当拉伸。有关详细信息,请参阅边框图像。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSplitter、QTextEdit和QToolTip支持此属性。

另请参阅边框颜色、边框样式、边框宽度和框模型。
border-radius Radius 边框角的半径。等效于指定边框-顶部-左侧-半径、边框-顶部-右侧-半径、边框-底部-右侧-半径和边框-底部-左侧-半径。
边框半径剪辑元素的背景。

QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSplitter、QTextEdit和QToolTip支持此属性。

如果未指定此属性,则默认为0。
另请参阅边框宽度和框模型。
border-top-left-radius Radius 边框左上角的半径。
border-top-right-radius Radius 边界右上角的半径。
border-bottom-right-radius Radius 边框右下角的半径。将此属性设置为正值会导致圆角。
border-bottom-left-radius Radius 边框左下角的半径。将此属性设置为正值会导致圆角。
border-style Border Style 所有边框边缘的样式。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSplitter、QTextEdit和QToolTip支持此属性。

如果未指定此属性,则默认为无。另请参阅边框颜色、边框样式、边框图像和框模型。 border-color, border-style, border-image, and The Box Model.
border-top-style Border Style 边框顶部边缘的样式。
border-right-style Border Style 边框右边缘的样式
border-bottom-style Border Style 边框底部边缘的样式。
border-left-style Border Style 边框左边缘的样式。
border-width Box Lengths 边框的宽度。相当于设置边框-顶部-宽度、边框-右侧-宽度、边框-底部-宽度和边框-左侧-宽度。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSplitter、QTextEdit和QToolTip支持此属性。
参考 border-color, border-radius, border-style, border-image, and The Box Model.
border-top-width Length 边框上边缘的宽度。
border-right-width Length 边框右边缘的宽度。
border-bottom-width Length 边框底部边缘的宽度。
border-left-width Length 边框左边缘的宽度。
bottom Length 如果位置是相对的(默认值),则将子控件向上移动一定的偏移量;指定底部:y等效于指定顶部:-y。
如果位置是绝对的,则底部属性指定子控件的底部边缘相对于父控件的底部边缘(另请参阅子控件原点)。
另请参阅左、右和顶部。
button-layout Number QDialogButtonBox或QMessageBox中按钮的布局。可能的值为0(WinLayout)、1(MacLayout)、2(KdeLayout)、3(GnomeLayout)和5(AndroidLayout)。
如果未指定此属性,则默认为当前样式为SH_DialogButtonLayout样式提示指定的值。
color Brush 用于呈现文本的颜色。
所有尊重QWidget::面板的小部件都支持此属性。

如果未设置此属性,则默认为在小部件的调色板中为QWidget::foreground Role设置的任何内容(通常为黑色)。
另请参阅背景和选择颜色。
dialogbuttonbox-buttons-have-icons Boolean QDialogButtonBox中的按钮是否显示图标
如果此属性设置为1,QDialogButtonBox的按钮会显示图标;如果设置为0,则不会显示图标。

有关如何设置图标的信息,请参阅图标列表部分。
注意:定义此属性的样式必须在创建QDialogButtonBox之前应用;这意味着您必须将样式应用到父小部件或应用程序本身。
font font 用于设置文本字体的速记符号。相当于指定字体系列、字体大小、字体样式和/或字体权重。
所有尊重QWidget::f的小部件都支持此属性。

如果未设置此属性,则默认为QWidget::font。
font-family String 字体家族。
font-size Font Size 字体大小。在此版本的Qt中,仅支持pt和px指标。
font-style Font Style 字体样式。
font-weight Font Weight 字体的重量。
gridline-color* Color QTableView中网格线的颜色。
如果未指定此属性,则默认为当前样式为SH_Table_GridLineColor样式提示指定的值。
height Length 子控件(或在某些情况下,小部件)的高度。
如果未指定此属性,则默认为取决于子控件/小部件和当前样式的值。
警告:除非另有说明,否则此属性在小部件上设置时无效。如果您想要具有固定高度的小部件,请将min-Hei和max-Hei设置为相同的值。
icon Url+ 用于具有图标的小部件的图标。
当前唯一支持此属性的小部件是QPushButton。
注意:将图标分配给按钮是应用程序的责任(使用QAbstractButton API),而不是样式的责任。因此,除非您的样式表针对特定应用程序,否则请小心设置它。
icon-size Length 小部件中图标的宽度和高度。
可以使用此属性设置以下小部件的图标大小。
QCheckBox
QListView
QPushButton
QRadioButton
QTabBar
QToolBar
QToolBox
QTreeView
image* Url+ 在子控件的内容矩形中绘制的图像。
image属性接受URL列表或svg。绘制的实际图像是使用与QIcon相同的算法确定的(即图像永远不会放大,但在必要时总是缩小。如果指定了svg,则图像将缩放到内容矩形的大小。

在子控件上设置图像属性会隐式设置子控件的宽度和高度(除非SVG中的图像)。

在Qt 4.3及更高版本中,可以使用图像位置指定矩形内图像的对齐方式。

此属性仅用于子控件-我们不支持它用于其他元素。

警告:渲染SVG图像需要QIcon SVG插件。
image-position alignment 在Qt 4.3和更高版本中,可以使用相对或绝对位置来指定图像图像位置的对齐。
left Length 如果位置是相对的(默认值),则将子控件向右移动一定的偏移量。
如果位置是绝对的,则左属性指定子控件相对于父控件的左边缘的左边缘(另请参阅子控件原点)。

如果未指定此属性,则默认为0。
另请参阅右侧、顶部和底部。
lineedit-password-character* Number QLineEdit密码字符作为Unicode编号。
如果未指定此属性,则默认为当前样式为SH_LineEdit_PasswordCharacter样式提示指定的值。
lineedit-password-mask-delay* Number QLineEdit密码掩码延迟(以毫秒为单位),然后将lineedit密码字符应用于可见字符。
如果未指定此属性,则默认为当前样式为SH_LineEdit_PasswordMaskDelay样式提示指定的值。

此属性是在Qt 5.4中添加的。
margin Box Lengths 小部件的边距。等效于指定边距-顶部、边距-右侧、边距-底部和边距-左侧。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSplitter、QTextEdit和QToolTip支持此属性。

如果未指定此属性,则默认为0。
margin-top Length 小部件的上边距。
margin-right Length 小部件的右边距。
margin-bottom Length 小部件的底部边距。
margin-left Length 小部件的左边距。
max-height Length 小部件或子控件的最大高度。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSizeGrip、QSpinBox、QSplitter、QStatusBar、QTextEdit和QToolTip支持此属性。

该值相对于框模型中的内容。
另请参阅最大宽度。
max-width Length 小部件或子控件的最大宽度。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSizeGrip、QSpinBox、QSplitter、QStatusBar、QTextEdit和QToolTip支持此属性。

该值相对于框模型中的内容。
另请参阅最大高度。
messagebox-text-interaction-flags* Number 消息框中文本的交互行为。可能的值基于Qt::TextInteractionFlags。
如果未指定此属性,则默认为当前样式为SH_MessageBox_TextInteractionFlags样式提示指定的值。
min-height Length 小部件或子控件的最小高度。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSizeGrip、QSpinBox、QSplitter、QStatusBar、QTextEdit、QToolButton和QToolTip支持此属性。

如果未指定此属性,则根据小部件的内容和样式派生最小高度。

该值相对于框模型中的内容。
注意:设置此属性可能允许小部件缩小到小于内容所需的空间。

另见最小宽度。
min-width Length 小部件或子控件的最小宽度。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSizeGrip、QSpinBox、QSplitter、QStatusBar、QTextEdit、QToolButton和QToolTip支持此属性。

如果未指定此属性,则根据小部件的内容和样式派生最小宽度。

该值相对于框模型中的内容。
注意:设置此属性可能允许小部件缩小到小于内容所需的空间。

另见最小高度。
opacity* Number 小部件的不透明度。可能的值从0(透明)到255(不透明)。目前,仅支持工具提示。
如果未指定此属性,则默认为当前样式为SH_ToolTipLabel_Opacity样式提示指定的值。
outline 围绕对象边界绘制的轮廓。
outline-color Color 轮廓的颜色。另请参阅边框颜色
outline-offset Length 大纲与小部件边框的偏移量。
outline-style 指定用于绘制轮廓的模式。另请参阅边框样式
outline-radius 为轮廓添加圆角
outline-bottom-left-radius Radius 轮廓左下角圆角的半径。
outline-bottom-right-radius Radius 轮廓右下角圆角的半径。
outline-top-left-radius Radius 轮廓左上角的半径。
outline-top-right-radius Radius 轮廓右上角圆角的半径。
padding Box Lengths 小部件的填充。相当于指定填充顶部、填充右侧、填充底部和填充左侧。
QAbstractItemView子类、QAbstractSpinBox子类、QCheckBox、QComboBox、QFrame、QGroupBox、QLabel、QLineEdit、QMenu、QMenuBar、QPushButton、QRadioButton、QSplitter、QTextEdit和QToolTip支持此属性。

如果未指定此属性,则默认为0。
另请参阅边距、行间距和框模型。
padding-top Length 小部件的顶部填充。
padding-right Length 小部件的右填充。
padding-bottom Length 小部件的底部填充。
padding-left Length 小部件的左填充。
paint-alternating-row-colors-for-empty-area bool QTreeView是否为空白区域(即没有项目的区域)绘制交替的行颜色
placeholder-text-color* Brush 用于文本编辑小部件的占位符文本的颜色。 如果未设置此属性,则默认值为为调色板的PlaceholderText角色设置的任何内容。 自6.5起可用。
position `relative absolute`
right Length 如果位置是相对的(默认值),则将子控件向左移动一定的偏移量;指定right: x等价于指定old:-x。 如果位置是绝对的,则right属性指定子控件的右边缘相对于父控件的右边缘(另请参阅子控件原点)。 另请参阅左侧、顶部和底部。
selection-background-color* Brush 选定文本或项目的背景。 所有尊重QWidget::面板和显示选择文本的小部件都支持此属性。 如果未设置此属性,则默认值为为调色板的Highlight角色设置的任何内容。 另请参阅选择-颜色和背景。
show-decoration-selected* Boolean 控制QListView中的选择是覆盖整行还是仅覆盖文本的范围。 如果未指定此属性,则默认为当前样式为SH_ItemView_ShowDecorationSelected样式提示指定的值。
spacing* Length 小部件中的内部行间距。 QCheckBox、可检查的QGroupBox、QMenuBar和QRadioButton支持此属性。 如果未指定此属性,则默认值取决于小部件和当前样式。
subcontrol-origin* Origin 父元素内子控件的原点矩形。 如果未指定此属性,则默认为填充。 另见子控制位置。
subcontrol-position* Alignment 子控件在子控件指定的原点矩形内的对齐方式。 如果未指定此属性,则默认为依赖于子控件的值。
titlebar-show-tooltips-on-buttons} bool 工具提示是否显示在窗口标题栏按钮上。
widget-animation-duration* Number 动画应该持续多长时间(以毫秒为单位)。值等于零意味着动画将被禁用。 如果未指定此属性,则默认为当前样式为SH_Widget_Animation_Duration样式提示指定的值。 此属性是在Qt 5.10中添加的。
text-align Alignment 小部件内容中文本和图标的对齐方式。 如果未指定此值,则默认为取决于本机样式的值。 此属性目前仅受QPushButton和QProgressBar支持。
text-decoration none underline overline line-through 附加文本效果
top Length 如果位置是相对的(默认值),则将子控件向下移动一定的偏移量。
如果位置是绝对的,则top属性指定子控件的上边缘与父控件的上边缘的关系(另请参阅subControl源)。

如果未指定此属性,则默认为0。另请参阅左、右和底部。
width Length 子控件(在某些情况下是小部件)的宽度。
如果未指定此属性,则默认为取决于子控件/小部件和当前样式的值。

警告:除非另有说明,否则此属性在小部件上设置时无效。如果您想要具有固定宽度的小部件,请将min-wide和max-wide设置为相同的值。
-qt-background-role PaletteRole 基于所选角色的子控件或小部件的背景颜色。
-qt-style-features list 要应用Qt特定样式的CSS属性列表。
注意:该列表只能包含非基于像素图的属性。

图标的列表

Qt中使用的图标可以使用以下属性进行自定义。本节中列出的每个属性都具有Icon类型。

请注意,要使图标出现在QDialogButtonBox中的按钮中,您需要将dialogbuttonbox-buttons-have-icons图标属性设置为true。此外,要自定义图标的大小,请使用icon-size属性。

from PySide6.QtWidgets import QStyle


QStyle.StandardPixmap
Name 翻译 QStyle.StandardPixmap
backward-icon 返回图标 SP_ArrowBack
cd-icon 光盘图标 SP_DriveCDIcon
computer-icon 计算机图标 SP_ComputerIcon
desktop-icon 桌面图标 SP_DesktopIcon
dialog-apply-icon 应用图标 SP_DialogApplyButton
dialog-cancel-icon 取消图标 SP_DialogCancelButton
dialog-close-icon 关闭图标 SP_DialogCloseButton
dialog-discard-icon 对话框-丢弃-图标 SP_DialogDiscardButton
dialog-help-icon 帮助图标 SP_DialogHelpButton
dialog-no-icon 对话框无图标 SP_DialogNoButton
dialog-ok-icon 对话框-ok-图标 SP_DialogOkButton
dialog-open-icon 对话框打开图标 SP_DialogOpenButton
dialog-reset-icon 对话框-重置-图标 SP_DialogResetButton
dialog-save-icon 保存图标 SP_DialogSaveButton
dialog-yes-icon 对话框是图标 SP_DialogYesButton
directory-closed-icon 目录-关闭-图标 SP_DirClosedIcon
directory-icon 目录图标 SP_DirIcon
directory-link-icon 目录链接图标 SP_DirLinkIcon
directory-open-icon 目录打开图标 SP_DirOpenIcon
dockwidget-close-icon 停靠小部件-关闭-图标 SP_DockWidgetCloseButton
downarrow-icon 向下箭头图标 SP_ArrowDown
dvd-icon DVD图标 SP_DriveDVDIcon
file-icon 文件图标 SP_FileIcon
file-link-icon 文件链接图标 SP_FileLinkIcon
filedialog-contentsview-icon 文件对话框-内容视图-图标 SP_FileDialogContentsView
filedialog-detailedview-icon 文件对话框-详细视图-图标 SP_FileDialogDetailedView
filedialog-end-icon 文件端图标 SP_FileDialogEnd
filedialog-infoview-icon 文件对话框-信息视图-图标 SP_FileDialogInfoView
filedialog-listview-icon 文件对话框-列表视图-图标 SP_FileDialogListView
filedialog-new-directory-icon 文件对话框-新建-目录-图标 SP_FileDialogNewFolder
filedialog-parent-directory-icon 文件对话框-父-目录-图标 SP_FileDialogToParent
filedialog-start-icon 文件对话框-开始-图标 SP_FileDialogStart
floppy-icon 软盘图标 SP_DriveFDIcon
forward-icon 前向图标 SP_ArrowForward
harddisk-icon 硬盘图标 SP_DriveHDIcon
home-icon 家庭图标 SP_DirHomeIcon
lineedit-clear-button-icon 行编辑-清除-按钮-图标 SP_LineEditClearButton
leftarrow-icon leftarrow-图标 SP_ArrowLeft
messagebox-critical-icon 消息框-关键-图标 SP_MessageBoxCritical
messagebox-information-icon 消息框-信息-图标 SP_MessageBoxInformation
messagebox-question-icon 消息框-问题-图标 SP_MessageBoxQuestion
messagebox-warning-icon 消息框-警告-图标 SP_MessageBoxWarning
network-icon 网络图标 SP_DriveNetIcon
rightarrow-icon 右塔罗图标 SP_ArrowRight
titlebar-contexthelp-icon 标题栏-上下文帮助-图标 SP_TitleBarContextHelpButton
titlebar-maximize-icon 标题栏-最大化-图标 SP_TitleBarMaxButton
titlebar-menu-icon 标题栏-菜单-图标 SP_TitleBarMenuButton
titlebar-minimize-icon 标题栏-最小化-图标 SP_TitleBarMinButton
titlebar-normal-icon 标题栏-正常-图标 SP_TitleBarNormalButton
titlebar-shade-icon 标题栏阴影图标 SP_TitleBarShadeButton
titlebar-unshade-icon 标题栏-未阴影-图标 SP_TitleBarUnshadeButton
trash-icon 垃圾图标 SP_TrashIcon
uparrow-icon 向上箭头 SP_ArrowUp

样式表

为了美化窗口或控件的外观,可以通过窗口或控件的调色板给窗口或控件按照角色和分组设置颜色,还可以对窗口或控件的每个部分进行更细致的控制,这涉及窗口或控件的样式表(Qt style sheets,QSS),它是从 HTML 的层叠样式表(cascading style sheets,CSS)演化而来的。

  • 样式表由固定格式的文本构成,用窗口或控件的 setStyleSheet(styleSheet:str)方法设置样式,其中参数 styleSheet 是样式格式符。

    例如一个窗体上有多个继承自QPushButton 的按钮,用窗口的setStyleSheet方法可以将窗体上所有QPushButton类型的按钮定义成字体大小是20个像素、字体名称是宋体、字体颜色是红色,背景色是灰黑色的样式。

    self.setStyleSheet("""
    				   QPushButton{
                       font: 20pt'宋体';
                       color:rgb(255,0,0);
                       background-color: rgb(100,100,100)
                       }
    					""")
    
  • 也可以单独给某个按钮定义样式,例如有个 objectName 名称是btn_open 按钮,则用以下方法设置该按钮的字体大小是30个像素、宇体名称是黑体、字体颜色是白色,背景色是黑色的样式。

    btn_open.setStyleSheet("""
    					  font:30pt 黑体;
    					  color: rgb(255,255.255);
    					  background-color: rgb(0,0,0)
    					""")
    # 三对引号是为了方便观看,实际使用单对引号
    
  • 可以看出定义样式表的一般规则:

    • 样式属性:值的形式定义样式属性的值
    • 多个样式的样式属性:值对之间用分号;隔开
    • 如果是对某一类控件进行设置,需要先说明控件的类,然后后面跟一对大括号{},把样式属性:值放到{}中。

下面详细介绍样式表的格式。

选择器

样式表除了类名、对象名和属性名外,一般不区分大小写。

样式表由选择器(selector)和声明(declaration)两部分构成,选择器用于选择某种类型或多个类型的控件,声明是要设置的属性和属性的值,例如以下 QPushButton 和 QLineEdit 就是选择器,用于选择继承自QPushButton 和 QLineEdit 的所有控件和子控件。

"QPushButton,QLineEdit {font: 20pt 宋体;color: rgb(255,0,0);background-color: rgb(100,100,100))"

选择器的使用方法如表所示:

选择器 示 例 说 明
全局选择器 * 选择所有的控件
类型选择器 QWidget 选择QWidget及其子类
属性选择器 QPushButton[flat=“false”] 只选择属性 flat的值是 False的 QPushButton 控件
类选择器 QPushButton 选择QPushButton但不选择其子类
ID选择器 QPushButton#btn_open 选择名称是 btn_open(用setObjectName(“btn_ open”)方法设置)的所有 QPushButton
后代选择器 QWidget QPushButton 选择QWidget后代中所有的QPushButton
子对象选择器 QWidget>QPushButton 选择直接从属于QWidget的QPushButton

子控件

一些复合型控件,例如 QComboBox,由 QLineEdit 和向下的箭头构成,向下的箭头可以称为子控件。

对子控件的引用是在控件和子控件之间用两个连续的冒号::隔开,例如"QComboBox::drop-down(image: url(:/image/down.png))"在资源文件中设置具有向下箭头的图片。

控件的子控件名称如表所示。

子控件的名称 说 明
groove QSlider的凹槽
handle QScrollBar、QSplitter、QSlider 的手柄或滑块
corner QAbstractScrollArea中两个滚动条之间的角落
add-line QScrollBar增加行的按钮,即按下该按钮滚动条增加一行
add-page QScrollBar在手柄(滑块)和增加行之间的区域
sub-line QScrollBar 减少行的按钮,即按下该按钮滚动条减少一行
sub-page QScrollBar 在手柄(滑块)和减少行之间的区域
down-arrow QComboBox、QHeaderView(排序指示器)、QScrollBar、QSpinBox的向下箭头
down-button QScrollBar或QSpinBox的向下按钮
up-arrow QHeaderView(排序指示器)、QScrollBar、QSpinBox的向上箭头
up-button QSpinBox的向上按钮
left-arrow QScrollBar 的左箭头
right-arrow QMenu或QScrolBar的右箭头
branch QTreeView的分支指示符
section QHeardeView的段
text QAbstractltemView的文本
chunk QProgressBar的进度块
drop-down QComboBox的下拉按钮
indicator QAbstractltemView、QCheckBox、QRadioButton、QMenu(可被选中的)、QGroupBox(可被选中的)的指示器
pane QTabWidget的面板(边框)
right-corner QTabWidget的右角落,可用于控件QTabWidget中右角落控件的位置
left-corner QTabWidget的左角落,可用于控件QTabWidget中左角落控件的位置
tab-bar QTabWidget的选项卡栏,仅用于控制 QTabBar 在 QTabWidget 中的位置
1ab QTabBar或QToolBox的选项卡
tear QTabBar的可分离指示器
close-button QTabBar选项卡或QDockWidget上的关闭按钮
float-button QDockWidget 的浮动按钮
title QDockWidget 或 QGroupBox的标题
scroller QMenu或QTabBar的滚动条
separator QMenu或 QMainWindow 中的分隔符
tearoff QMenu的可分离指示器
item 8AbstrscttemView.QMenuBar.QMenu.QStatusBar 中的个项
icon QAbstractItemView 或QMenu的图标
menu-arrow 带有菜单的QToolButton的箭头
menu-button QToolButton的菜单按钮
menu-indicator QPushButton的菜单指示器

状态选择

一个控件有多种状态,例如活跃(active)激活(enabled)失效(disabled)、鼠标悬停(hover)、选中(checked)、未选中(unchecked)和可编辑(editable)等

根据控件所处的状态可以给控件设置不同的外观。

  • 样式表的格式字符串中,控件与状态之间用冒号:隔开,例如QPushButton:active(...)设置激活时的外观
  • 可以同时对多个状态进行设置,例如QPushButton:active: hoverl...
  • 设置激活或者光标悬停时的外观;可以在状态前加!表示相反的状态。

控件的常用状态如表所示。

控件的状态 说 明
active 控件处于激活状态
focus 该项具有输入焦点
default 该项是默认值
disabled 控件已失效
enabled 该控件已启用
hover 光标悬停在该控件上
pressed 使用鼠标按下该控件
no-frame 该控件没有边框,例如无边框的 QLineEdit等
flat 该控件是平的(flat),例如,一个平的 QPushButton
checked 该控件被选中
unchecked 该控件未被选中
off 适用于处于关闭状态的控件
on 适用于处于开启状态的控件
editable QComboBox是可编辑的
read-only 该控件为只读,例如只读的 QLineEdit
indeterminate 该控件具有不确定状态,例如,三态的QCheckBox
exclusive 该控件是排他项目组的一部分
non-exclusive 该控件是非排他项目组的一部分
bottom 该控件位于底部
top 该控件位于顶部
left 该控件位于左侧,例如QTabBar的选项卡位于左侧
right 该控件位于右侧,例如QTabBar的选项卡位于右侧
middle 该控件位于中间,例如不在QTabBar 开头或结尾的选项卡
first 该控件是第一个,例如 QTabBar 中的第一个选项卡
last 该控件是最后一个,例如 QTabBar中的最后一个选项卡
horizontal 该控件具有水平方向
vertical 该控件具有垂直方向
maximized 该控件是最大化的,例如最大化的QMdiSubWindow
minimized 该控件是最小化的,例如最小化的QMdiSubWindow
floatable 该控件是可浮动的
movable 该控件可移动,例如,可移动的QDockWidget
only-one 该控件是唯一的,例如只有一个选项卡的QTabBar
next-selected 下一控件被选择
previous-selected 上一控件被选择
selected 该控件被选择
window 控件是一个窗口,即顶级控件
closable 该控件可被关闭,例如可关闭的QDockWidget
closed 该控件处于关闭状态,例如QTreeView中的非展开控件
open 该控件处于打开状态,例如QTreeView中的展开控件,或带有打开菜单的 QComboBox或 QPushButton控件
has-children 该控件具有孩子,例如 QTreeView中具有子控件的控件
has-siblings 该控件具有兄弟姐妹(即同级的控件)
alternate 当QAbstractltemView.alternatingRowColors()被设置为true时,为每个交替行设 置此状态,以绘制QAbstractItemView的行

样式的属性

颜色属性的设置

控件有背景色、前景色及选中状态时的背景色和前景色,可以对这些颜色分别进行设置,这些颜色的属性名称如表所示

例:

QPushButton("background: gray; url(d:/s.png); background-repeat: repeat-x; background-position: left")

设置 QPushButton 类的颜色为灰色,设置背景图片为 d:/s.png,沿着 x 方向从左侧重复显示图片。

颜色属性名称 类型 说 明
background Background 设置背景的简写方法,相当于指定 background-color、 background-image,background-repeat,background-position
background-color Brush 控件的背景色
background-image Url 设置控件的背景图像
background-repeat Repeat 如何使用背景图像填充背景区域 background-origin,若未 指定此属性,则在两个方向重复背景图像
background-position Alignment 背景图像在 background-origin矩形内的位置,默认 为 topleft
background-attachment Attachment 确定QAbstractScrollArea中的background-image是相对 于视口滚动还是固定,默认值为scroll
background-clip Origin 控件绘制背景的矩形,此属性指定 background-color 和 background-image 的裁剪矩形。此属性默认值为border(即边框矩形)
background-origin Origin. 控件背景的原点矩形,通常与 background-position 和 background-image一起使用,默认为 padding(即边框矩 形)
color Brush 渲染文本的颜色,所有遵守 QWidget.palette 的控件都支 持此属性
selection-background-color Brush 所选文本或项的背景色,默认为调色板的 QPalette.Highlight角色的值
selection-color Brush 所选文本或项的前景色,默认为调色板的 QPalette. HighlightedText 角色的值
盒子的模型

大多数控件都是长方形的,一个长方形控件由 Content、Padding、Border、Margin 4部分构成,每个部分都是矩形。

Content 矩形是除掉边距、边框和填充之后的部分,默认情况下,边距、边框和填充的距离都为 0,因此这 4 个矩形是重合的,如图所示。

83-QStyle和QSS_第3张图片

可以用样式表分别设置这四个矩形之间的距离、边框的颜色。

  • Content 是输人内容的区域,可以设置 Content 区域宽度和高度的最大值和最小值,属性名称分别为 maxwidth、maxheight、min-width 和 min-height

    -“QSpinBox(min-height: 30px; max-height: 40px; min-width: 100px; max-width: 150px)”

  • 对于 Padding 区域,用padding 属性可以分别设置 Padding 与 Content 在上、右、下和左方向的距离,也可用padding-top、padding-right、padding-bottom 和 paddingleft 属性分别设置距离

    -"QSpinBox(padding: 10px 20px 25px 30px)“等价于"QSpinBox(padding-top: 10px; padding-right: 20px; padding-bottom: 25px;padding-left:30px)”

  • Border 区域可以设置的属性比较多,如表所示

    属性名称 类 型 说明
    border Border 设置边框的简写方法,相当于指定 border-color、 border-style、border-width
    border-top Border 设置控件顶部边框的简写方法,相当于指定 border- top-color、border-top-style、border-top-width
    border-right Border 设置控件右边框的简写方法,相当于指定border-right- color,border-right-style,border-right-width
    border-bottom Border 设置控件底部边框的简写方法,相当于指定 border-bottom-color、border-bottom-style、border-bottom-width
    border-left Border 设置控件左边框的简写方法,相当于指定 border-leftr- color、border-left-style、border-left-width
    border-color gh04 Box Colors 边框边界线的颜色,相当于指定 border toprcolor、 border-bottom-color、border-left-color、border-right-color,默认值为 color(即控件的前景色)
    border-top-color Brush 边框顶部边界线的颜色
    border-right-color Brush 边框右边界线的颜色
    border-bottom-color Brush 边框底部边界线的颜色
    border-left-color Brush 边框左边界线的颜色
    border-radius Radius 边框角落的半径,等效于指定 border-top-left-radius、 border-top-right-radius、 border-bottom-left-radius、 border-bottom-right-radius.默认为0
    border-top-left-radius Radius 边框左上角的半径
    border-top-right-radius Radius 边框右上角的半径
    border-bottom-right-radius Radius 边框右下角的半径
    order-bottom-left-radius Radius 边框左下角的半径
    border-style Border Style 边框边界线的样式(虚线、实线、点划线等),歌认 为 None
    border-top-style Border Style 边框顶部边界线的样式
    border-right-style Border Style 边框右侧边界线的样式
    border-bottom-style Border Style 边框底部边界线的样式
    border-left-style Border Style 边框左侧边界线的样式
    border-width Border Lengths 边框的宽度,等效于指定 border-top-width 、border-bottom-width、borde-left-width、border-right-width
    border-top-width L ength 边框顶部边界线的宽度
    border-right-width Length 边框右侧边界线的宽度
    border-bottom-width Length 边框底部边界线的宽度
    border-left-width Length 边框左侧边界线的宽度
    border-image Border Image 填充边框的图像,该图像皱分割成9个部分,并在必要时适当地拉伸
  • 对于 Margin 区域可以设置页边距。

    • margin 属性设篮控件的边距,等效于指定margin-top、margin-right、margin-bottom、margin-left,默认为0,margin-top、margin-right、margin-bottom、margin-left 分别设置控件的上、右、下和左侧的边距
与位置有关的属性

对于子控件,可以设置其在父控件中的位置,与此有关的属性名称如表所示

属性名称 类型 说 明
subcontrol-origin Onigin 子控件的矩形原点,默认为 padding
subcontrol-position Alignment 子控件在subcontrolorigin 属性指定的矩形内的对齐方式,殿记 值取决于子控件
position Relative Absolute 使用left、right top、bottom 属性的偏移是相对坐标还是绝对星 标,默认为 relative
spacing Length 控件的内部间距(比如复选按钮和文本之间的距离),默认值 决于当前风格
top、right、bottom、left Length 以 bottom 属性为例,若 position属性是relative(默认值),则将 子控件向上移动;若 position 是 absolute(绝对的),则 bQtom 属 性是指与子控件的下边缘的距离,该距离与subcontrol-origin 属 性有关,默认为0
height width Length 子控件的高度/宽度,默认值取决于当前样式。注意:除非另有 规定,否则在控件上设置此属性无效。若想要控件有一个固定 的高度,应将 min-height 和 max-height的值设置为相同,宽度 类似
max-height Length 控件或子控件的最大高度
max-width Length 控件或子控件的最大宽度
min-height Length 控件或子控件的最小高度,默认值依赖于控件的内容和风格
min-width Length 控件或子控件的最小宽度,默认值依赖于控件的内容和风格

由于样式表是字符串,因此对于比较复杂的样式表,可以将其保存到文本文件或二进制文件中,需要用时再读人进来。

基本语法

类似 CSS,QSS 每一条都是由一个选择器和一组声明构成:

选择器选出要对哪种控件进行样式修改,

每个声明都是键值对,键为属性,值为属性值

83-QStyle和QSS_第4张图片

使用方式

为降低耦合,往往把 QSS 写在一个单独的style.qss文件中,然后在 main.pyQApplicationQMainWindow 中加载样式

编写QSS

新建一个扩展名为.qss的文件,如style.qss,编辑内容。(本文后面有完整的样式主题、QSS 编辑器推荐)

把写好的 .qss 添加到 qrc

加载QSS

创建一个加载QSS样式表的公共类:

class QSSLoader:
    def __init__(self):
        pass

    @staticmethod
    def read_qss_file(qss_file_name):
        with open(qss_file_name,'r',encoding='UTF-8')as file:
            return file.read()

在代码中加载qss样式表:

app = QApplication(sys.argv)
window = MainWindow()
 
style_file = './style.qss'
style_sheet = QSSLoader.read_qss_file(style_file)
window.setStyleSheet(style_sheet)

window.show()
sys.exit(app.exec_())

QSS 编辑器

如果对上面推荐的这几个主题还不满意,你可以设计自己的QSS,下面推荐一些专用编辑器

QssStylesheetEditor

GitHub首页

中文README

QssStylesheetEditor 是一个功能强大的 Qt 样式表(QSS)编辑器,支持实时预览,自动提示,自定义变量,支持预览自定义ui代码,引用QPalette等功能。

83-QStyle和QSS_第5张图片

83-QStyle和QSS_第6张图片

这个软件有如下特点:

  • Qss代码高亮,代码折叠
  • Qss代码自动提示,自动补全
  • 实时预览 Qss 样式效果,可以预览几乎所有的 qtwidget 控件效果
  • 支持预览自定义界面代码
  • 支持在 Qss 中自定义变量
  • 自定义变量可以在颜色对话框中拾取变量的颜色
  • 支持通过颜色对话框改变QPalette,并在Qss中引用
  • 支持相对路径引用图片,以及引用资源文件中的图片
  • 支持切换不同的系统 theme,如 xp 主题,vista 主题等(不同 theme 下 qss 效果会略有差异)
  • 能够在 windows,linux,unix 上运行
  • 支持多国语言(目前已有中文,英文,俄文翻译)

还有许多强大而实用的功能,可以在README中查看

QSS Editor

Cross-platform application to edit and preview Qt style sheets(QSS).

跨平台的QSS编辑/预览应用

GitHub主页

GitHub realeases

下载地址2

83-QStyle和QSS_第7张图片

83-QStyle和QSS_第8张图片

Pycharm、VScode 插件

在Pycharm中可以安装Qt Style Sheet Highlighter插件,提供对QSS的代码高亮功能

83-QStyle和QSS_第9张图片

83-QStyle和QSS_第10张图片

在VScode里可以安装Qt for Python插件,该插件不仅支持qss文件的代码高亮,还支持qml、qrc、pro等代码的高亮

83-QStyle和QSS_第11张图片

QSS 样式分享

Qt 官方例子

Qt Style Sheets Examples

Qt官方给出的一些小例子,不一定好看但有很强的学习参考性

Qt-Material

UN-GCPDS/qt-material

This is another stylesheet for PySide6,PySide2 and PyQt5,which looks like Material Design(close enough).

“一个仿Material的样式,适用于PySide6,PySide2以及PyQt5”

83-QStyle和QSS_第12张图片

使用这套样式表也非常简单,作者已经打包发布到了pypi,所以我们只需要

pip install qt-material

安装,并在代码中import即可

# 使用例子
import sys
# from PySide6 import QtWidgets
# from PySide2 import QtWidgets
from PyQt5 import QtWidgets
from qt_material import apply_stylesheet

# create the application and the main window
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()

# setup stylesheet
apply_stylesheet(app,theme='dark_teal.xml')

# run
window.show()
app.exec_()

更多详细内容请查阅该项目的README

qtmodern

GitHub 首页

83-QStyle和QSS_第13张图片

该库也已经添加至 PyPI,可以通过 pip 安装使用:

pip install qtmodern
import qtmodern.styles
import qtmodern.windows

...

app = QApplication()
win = YourWindow()

qtmodern.styles.dark(app)
mw = qtmodern.windows.ModernWindow(win)
mw.show()

...

PyDracula

GitHub 首页

YouTube 演示与教程

注意此项目对应 PySide6 / PyQt6,而不是 PyQt5

83-QStyle和QSS_第14张图片

83-QStyle和QSS_第15张图片

一个现代化的 GUI,对高 DPI 有更好支持:

Qt Widgets 是一项老技术,对高 DPI 设置没有很好的支持,当您的系统应用DPI 高于 100% 时,这些图像看起来会失真。 通过在 Qt 模块导入正下方的"main.py"中应用以下代码,您可以使用一种变通方法来最小化此问题。

# ADJUST QT FONT DPI FOR HIGHT SCALE
# 
from modules import *
from widgets import *
os.environ["QT_FONT_DPI"]="96"

PyOneDark

GitHub 首页

YouTube 展示视频

和上面的 PyDracula 是同一作者

同样是对应 PySide6

83-QStyle和QSS_第16张图片

该作者还有一个Simple_PySide_Base的仓库,对 PySide2 或 PyQt5 初学者如何创建一个美观的 GUI 程序是不错的参考

PyQtDarkTheme

GitHub 首页

  • 扁平风格的深色/浅色主题
  • 支持 PySide 与 PyQt
  • 支持 PyInstaller
  • 解决了 Qt 版本间的风格差异
  • 深色和浅色主题的 QPalette

此主题的详细使用方法请参考文档

飞扬青云-QSS

在飞扬青云的QWidgetDemo项目中的styledemo子项目包含了3套很好看的QSS样式

83-QStyle和QSS_第17张图片

83-QStyle和QSS_第18张图片

83-QStyle和QSS_第19张图片

QSS目录链接

QDarkStyleSheet

The most complete dark/light style sheet for Qt applications

“最完整的深色/浅色Qt主题”

-文档

-GitHub

83-QStyle和QSS_第20张图片

83-QStyle和QSS_第21张图片

83-QStyle和QSS_第22张图片

83-QStyle和QSS_第23张图片

也可以通过pip直接安装使用

pip install qdarkstyle
# PyQt5 使用例子
import sys
import qdarkstyle
from PyQt5 import QtWidgets

# create the application and the main window
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()

# setup stylesheet
app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
# or in new API
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyqt5'))

# run
window.show()
app.exec_()

GTRONICK-QSS

GTRONICK/QSS: QT Style Sheets templates

一组QSS样式

83-QStyle和QSS_第24张图片

83-QStyle和QSS_第25张图片

83-QStyle和QSS_第26张图片

83-QStyle和QSS_第27张图片

83-QStyle和QSS_第28张图片

用第三方包设置样式

第三方包 qt-material提供了一些样式主题,在使用qt-material之前,需要用命令"pipinstall qt-material"安装 gt-material。

  • 用gt-material的 list_themes()方法可获得主题名称列表
  • 用apply_stylesheet(parent,theme)方法可以应用样式主题。

PyQt 图标库QtAwesome

GitHub 主页

QtAwesome enables iconic fonts such as Font Awesome and Elusive Icons in PyQt and PySide applications.

It started as a Python port of theQtAwesomeC++ library by Rick Blommers.

可以通过 conda 或者 pip 安装

conda install qtawesome
pip install qtawesome

83-QStyle和QSS_第29张图片

QtAwesome 还附带一个图标浏览器,可以显示所有可用的图标。你可以使用它来搜索适合需求的图标,然后复制应该用于创建该图标的名称到代码中以应用图标

83-QStyle和QSS_第30张图片

你可能感兴趣的:(#,pyside6,Python,GUI,开发语言,qt,python,音视频,媒体)