QStyle Class
QStyle 类是一个抽象基类,用于封装 GUI 的外观和风格。更多内容...
| 头文件: | #include <QStyle> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QObject |
| 被继承者: |
公共类型
| enum | ComplexControl { CC_SpinBox, CC_ComboBox, CC_ScrollBar, CC_Slider, CC_ToolButton, …, CC_CustomBase } |
| enum | ContentsType { CT_CheckBox, CT_ComboBox, CT_HeaderSection, CT_LineEdit, CT_Menu, …, CT_MdiControls } |
| enum | ControlElement { CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel, CE_DockWidgetTitle, CE_Splitter, …, CE_ShapedFrame } |
| enum | PixelMetric { PM_ButtonMargin, PM_DockWidgetTitleBarButtonMargin, PM_ButtonDefaultIndicator, PM_MenuButtonIndicator, PM_ButtonShiftHorizontal, …, PM_CustomBase } |
| enum | PrimitiveElement { PE_PanelButtonCommand, PE_FrameDefaultButton, PE_PanelButtonBevel, PE_PanelButtonTool, PE_PanelLineEdit, …, PE_PanelMenu } |
| enum | RequestSoftwareInputPanel { RSIP_OnMouseClickAndAlreadyFocused, RSIP_OnMouseClick } |
| enum | StandardPixmap { SP_TitleBarMinButton, SP_TitleBarMenuButton, SP_TitleBarMaxButton, SP_TitleBarCloseButton, SP_TitleBarNormalButton, …, SP_CustomBase } |
| flags | State |
| enum | StateFlag { State_None, State_Active, State_AutoRaise, State_Children, State_DownArrow, …, State_Small } |
| enum | StyleHint { SH_EtchDisabledText, SH_DitherDisabledText, SH_ScrollBar_ContextMenu, SH_ScrollBar_MiddleClickAbsolutePosition, SH_ScrollBar_LeftClickAbsolutePosition, …, SH_Table_AlwaysDrawLeftTopGridLines } |
| enum | SubControl { SC_None, SC_ScrollBarAddLine, SC_ScrollBarSubLine, SC_ScrollBarAddPage, SC_ScrollBarSubPage, …, SC_All } |
| flags | SubControls |
| enum | SubElement { SE_PushButtonContents, SE_PushButtonFocusRect, SE_PushButtonLayoutItem, SE_PushButtonBevel, SE_CheckBoxIndicator, …, SE_ToolBarHandle } |
公共函数
| QStyle() | |
| virtual | ~QStyle() |
| int | combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, QStyleOption *option = nullptr, QWidget *widget = nullptr) const |
| virtual void | drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const = 0 |
| virtual void | drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0 |
| virtual void | drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const |
| virtual void | drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const |
| virtual void | drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0 |
| virtual QPixmap | generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const = 0 |
| virtual QStyle::SubControl | hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const = 0 |
| virtual QRect | itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const |
| virtual QRect | itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const |
| virtual int | layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0 |
(since 6.1) QString | name() const |
| virtual int | pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0 |
| virtual void | polish(QWidget *widget) |
| virtual void | polish(QApplication *application) |
| virtual void | polish(QPalette &palette) |
| const QStyle * | proxy() const |
| virtual QSize | sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const = 0 |
| virtual QIcon | standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0 |
| virtual QPalette | standardPalette() const |
| virtual int | styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const = 0 |
| virtual QRect | subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const = 0 |
| virtual QRect | subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const = 0 |
| virtual void | unpolish(QWidget *widget) |
| virtual void | unpolish(QApplication *application) |
静态公共成员
| QRect | alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle) |
| int | sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false) |
| int | sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false) |
| Qt::Alignment | visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment) |
| QPoint | visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition) |
| QRect | visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle) |
详细说明
windows XML-ph-0000@deepl.internal 和fusion 样式已内置于Qt Widgets 模块中。平台样式属于样式插件:windows11 (遵循 Windows 11 Fluent 设计),以及适用于 Windows 的windowsvista 、macOS 的macos 和 Android 的android 。QStyleFactory 列出了运行时可用的样式,并根据名称创建它们。
Qt Widgets 的内置控件几乎都使用 QStyle 进行绘制,以确保它们的外观与相应的原生控件完全一致。下图展示了同一表单在 Windows 系统上采用windows11 、windowsvista 和windows 样式,以及在fusion 和macos 样式下的效果。
Windows 11 |
Windows Vista |
Windows |
Fusion |
采用深色配色的 Fusion |
macOS |
设置样式
可以使用QApplication::setStyle()函数设置整个应用程序的样式。用户也可以通过-style 命令行选项来指定样式:
./myapplication -style windows如果未指定样式,Qt 将根据用户的平台或桌面环境选择最合适的样式。
也可以使用QWidget::setStyle() 函数为单个控件设置样式。
选择样式设计方法
根据您希望进行的修改程度,选择相应的机制:
- 若要调整平台样式,请继承QProxyStyle 类。
- 若要实现完全自定义的外观,请继承 `QCommonStyle` 类。
- 若要声明式地描述设计并将其与 `Qt Quick Controls` 共享,请使用StyleKit及其 `QStyleKitStyle`。
《Qt Widgets 的样式设计方法》将这些选项与Qt 样式表进行了比较,并解释了每种方法在何种情况下适用。
开发支持样式自定义的自定义控件
如果您正在开发自定义控件,并希望它们在所有平台上都看起来不错,可以使用 QStyle 函数来执行控件绘制的部分工作,例如drawItemText()、drawItemPixmap()、drawPrimitive()、drawControl() 和drawComplexControl()。
大多数 QStyle 绘制函数接受四个参数:
- 一个枚举值,用于指定要绘制的图形元素
- 一个QStyleOption ,用于指定如何以及在何处渲染该元素
- 用于绘制该元素的QPainter
- 用于执行绘制的QWidget (可选)
例如,若要在小部件上绘制焦点矩形,可以这样写:
void MyWidget::paintEvent(QPaintEvent * /* event */)
{
QPainter painter(this);
QStyleOptionFocusRect option;
option.initFrom(this);
option.backgroundColor = palette().color(QPalette::Window);
style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this);
}QStyle 会从 `QStyleOption` 中获取渲染图形元素所需的所有信息。将小部件作为最后一个参数传递,是为了以防样式需要它来实现特殊效果(例如 macOS 上的动画默认按钮),但这并非强制要求。 实际上,通过正确设置QPainter ,您可以使用 QStyle 在任何绘制设备上进行绘制,而不仅仅是小部件。
QStyleOption PE_FrameFocusRect 拥有多种子类,用于绘制不同类型的图形元素。例如, 期望有一个 参数。QStyleOptionFocusRect
为了确保绘制操作尽可能快,QStyleOption 及其子类具有公共数据成员。有关如何使用QStyleOption 的详细信息,请参阅该类的文档。
为方便起见,Qt 提供了QStylePainter 类,该类结合了 QStyle、QPainter 和QWidget 。这使得可以编写
QStylePainter painter(this);
...
painter.drawPrimitive(QStyle::PE_FrameFocusRect, option);,而不是
QPainter painter(this);
...
style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this);创建自定义样式
您可以通过创建自定义样式来为应用程序设计自定义的外观和风格。有两种方法:若要修改现有样式的特定方面,请继承QProxyStyle 类,并重写负责绘制或测量您想要修改的元素的虚函数;代理会将其他所有内容转发给它所封装的样式,默认情况下是平台样式。 若要实现完整的界面样式,请继承QCommonStyle 类——该类实现了所有Qt样式共有的行为,并将绘制工作交由您处理。Qt的内置样式不属于公共API的一部分,不能用作基类;请改用QProxyStyle 来封装它们。
根据您希望更改基样式中的哪些部分,必须重写用于绘制界面相应部分的函数。为了说明这一点,我们将修改平台样式绘制的旋转框箭头的样式。这些箭头是基本元素,由drawPrimitive() 函数绘制,因此我们需要重写该函数。 我们需要以下类声明:
class CustomStyle : public QProxyStyle
{
Q_OBJECT
public:
explicit CustomStyle(const QWidget *widget = nullptr);
~CustomStyle() {}
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const override;
};为了绘制其向上和向下箭头,QSpinBox 使用了PE_IndicatorSpinUp 和PE_IndicatorSpinDown 这两个基元元素。以下是如何重写drawPrimitive() 函数以采用不同方式绘制它们:
void CustomStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const
{
if (element == PE_IndicatorSpinUp || element == PE_IndicatorSpinDown) {
QPolygon points(3);
int x = option->rect.x();
int y = option->rect.y();
int w = option->rect.width() / 2;
int 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);
}
}请注意,我们不使用widget 参数,除非将其传递给QProxyStyle::drawPrimitive()函数。如前所述,关于要绘制什么以及如何绘制的信息由QStyleOption 对象指定,因此无需向控件查询。
如果您需要使用widget 参数来获取额外信息,请务必在使用前确保其值不为0且类型正确。例如:
在实现自定义样式时,不能仅仅因为枚举值名为PE_IndicatorSpinUp 或PE_IndicatorSpinDown ,就假设该控件是QSpinBox 。
使用自定义样式
在 Qt XML 应用程序中使用自定义样式有多种方法。最简单的方法是在创建 `QApplication ` 对象之前,将自定义样式传递给 `QApplication::setStyle()` 静态函数:
#include <QtWidgets>
#include "customstyle.h"
int main(int argc, char *argv[])
{
QApplication::setStyle(new CustomStyle);
QApplication app(argc, argv);
QSpinBox spinBox;
spinBox.show();
return app.exec();
}您可以随时调用QApplication::setStyle(),但若在构造函数之前调用,则可确保尊重用户通过-style 命令行选项设置的首选项。
您可能希望将自定义样式提供给其他应用程序使用,而这些应用程序可能并非您开发,因此您无法对其进行重新编译。Qt 插件系统允许将样式作为插件创建。作为插件创建的样式将在运行时由 Qt 自身作为共享对象加载。 有关如何创建样式插件的更多信息,请参阅Qt 插件文档。
编译您的插件,并将其放置在 Qt 的plugins/styles 目录中。现在,我们拥有了一个 Qt 可以自动加载的可插拔样式。若要在现有应用程序中使用您的新样式,只需使用以下参数启动应用程序:
./myapplication -style custom应用程序将采用您实现的自定义样式的外观和风格。
从右到左的桌面
从右向左书写的语言(如阿拉伯语和希伯来语)通常也会将控件的整体布局进行镜像处理,并且要求光线从屏幕的右上角而非左上角照射而来。
如果您创建自定义样式,在绘制非对称元素时应格外小心,以确保它们在镜像布局中也能显示正确。测试样式的简便方法是使用-reverse 命令行选项运行应用程序,或在main() 函数中调用QApplication::setLayoutDirection()。
以下是在使样式在从右到左的环境中正常工作时需要注意的几点:
- subControlRect() 和subElementRect() 返回以屏幕坐标为基准的矩形
- QStyleOption::direction 表示应沿哪个方向绘制该项目
- 如果样式不支持从右到左布局,则会将项目显示为从左到右的样式
- visualRect()、visualPos() 和visualAlignment() 是很有用的函数,可将逻辑表示转换为屏幕表示。
- alignedRect() 将返回一个与当前方向对齐的逻辑矩形
项视图中的样式
视图中项目的绘制由一个委托(delegate)执行。Qt 的默认委托QStyledItemDelegate 还用于计算项目的边界矩形,以及data roles QStyledItemDelegate 支持的各种项目及其子元素的边界矩形。 请参阅QStyledItemDelegate 类描述,了解其支持的数据类型和角色。您可以在《模型/视图编程》中进一步了解项目数据角色。
当QStyledItemDelegate 绘制其项时,它会绘制CE_ItemViewItem ,并使用CT_ItemViewItem 计算其大小。另请注意,它使用SE_ItemViewItemText 来设置编辑器的大小。 在实现样式以自定义项目视图的绘制时,您需要检查QCommonStyle (以及您的样式所继承的任何其他子类)的实现。通过这种方式,您可以了解其他样式元素的绘制方式,从而能够重写那些需要以不同方式绘制的元素的绘制逻辑。
我们提供了一个小型示例,其中自定义了项目背景的绘制方式。
switch (element) {
case (PE_PanelItemViewItem): {
painter->save();
QPoint topLeft = option->rect.topLeft();
QPoint bottomRight = option->rect.topRight();
QLinearGradient backgroundGradient(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;
}
default:
QProxyStyle::drawPrimitive(element, option, painter, widget);
}基本元素PE_PanelItemViewItem 负责绘制项目的背景,该方法由QCommonStyle 对CE_ItemViewItem 的实现调用。
若要支持绘制新的数据类型和项目数据角色,则必须创建一个自定义委托。但如果您只需支持默认委托所实现的数据类型,则自定义样式无需配套的委托。QStyledItemDelegate 类的描述中提供了有关自定义委托的更多信息。
项目视图标题的绘制也由样式完成,从而可以控制标题项的大小以及行和列的尺寸。
另请参阅 QStyleOption 、QStylePainter 、样式与支持样式的控件、 Qt Widgets 的样式设计方法、QStyledItemDelegate 以及样式设计。
成员类型文档
enum QStyle::ComplexControl
此枚举描述了可用的复合控件。复合控件的行为会根据用户点击的位置或按下的键而有所不同。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::CC_SpinBox | 0 | 一个旋转输入框,例如QSpinBox 。 |
QStyle::CC_ComboBox | 1 | 下拉列表框,例如QComboBox 。 |
QStyle::CC_ScrollBar | 2 | 一个滚动条,例如QScrollBar 。 |
QStyle::CC_Slider | 3 | 一个滑块,如QSlider 。 |
QStyle::CC_ToolButton | 4 | 工具按钮,例如QToolButton 。 |
QStyle::CC_TitleBar | 5 | 标题栏,例如QMdiSubWindow 中使用的那些。 |
QStyle::CC_GroupBox | 7 | 一个组框,例如QGroupBox 。 |
QStyle::CC_Dial | 6 | 一个旋钮,例如QDial 。 |
QStyle::CC_MdiControls | 8 | 在最大化状态下的MDI子窗口菜单栏中,包含最小化、关闭和恢复正常大小的按钮。 |
QStyle::CC_CustomBase | 0xf0000000 | 自定义复合控件的基准值。自定义值必须大于此值。 |
另请参阅 SubControl 和drawComplexControl()。
enum QStyle::ContentsType
此枚举描述了可用的内容类型。这些类型用于计算各种控件内容的尺寸。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::CT_CheckBox | 1 | 复选框,例如QCheckBox 。 |
QStyle::CT_ComboBox | 4 | 下拉列表框,例如 `QComboBox`。 |
QStyle::CT_HeaderSection | 19 | 一个标题部分,例如 QHeader。 |
QStyle::CT_LineEdit | 14 | 行编辑控件,例如QLineEdit 。 |
QStyle::CT_Menu | 10 | 一个菜单,例如QMenu 。 |
QStyle::CT_MenuBar | 9 | 菜单栏,例如QMenuBar 。 |
QStyle::CT_MenuBarItem | 8 | 菜单栏项目,例如QMenuBar 中的按钮。 |
QStyle::CT_MenuItem | 7 | 菜单项,例如 QMenuItem。 |
QStyle::CT_ProgressBar | 6 | 进度条,例如QProgressBar 。 |
QStyle::CT_PushButton | 0 | 一个按压按钮,例如 `QPushButton`。 |
QStyle::CT_RadioButton | 2 | 单选按钮,例如QRadioButton 。 |
QStyle::CT_SizeGrip | 16 | 大小控点,例如QSizeGrip 。 |
QStyle::CT_Slider | 12 | 一个滑块,例如QSlider 。 |
QStyle::CT_ScrollBar | 13 | 一个滚动条,例如QScrollBar 。 |
QStyle::CT_SpinBox | 15 | 旋转框,例如QSpinBox 。 |
QStyle::CT_Splitter | 5 | 一个分隔条,例如QSplitter 。 |
QStyle::CT_TabBarTab | 11 | 标签栏上的标签,例如QTabBar 。 |
QStyle::CT_TabWidget | 17 | 一个选项卡控件,例如QTabWidget 。 |
QStyle::CT_ToolButton | 3 | 工具按钮,例如QToolButton 。 |
QStyle::CT_GroupBox | 20 | 一个组框,例如QGroupBox 。 |
QStyle::CT_ItemViewItem | 22 | 项目视图中的一个项目。 |
QStyle::CT_CustomBase | 0xf0000000 | 自定义内容类型的基值。自定义值必须大于此值。 |
QStyle::CT_MdiControls | 21 | 最大化的 MDI 子窗口菜单栏中的最小化、正常和关闭按钮。 |
另请参阅 sizeFromContents()。
enum QStyle::ControlElement
此枚举表示一个控件元素。控件元素是小部件的一部分,用于执行某些操作或向用户显示信息。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::CE_PushButton | 0 | QPushButton ,绘制 CE_PushButtonBevel、CE_PushButtonLabel 和PE_FrameFocusRect 。 |
QStyle::CE_PushButtonBevel | 1 | QPushButton 的斜面和默认指示器。 |
QStyle::CE_PushButtonLabel | 2 | QPushButton 的标签(带文本或位图的图标)。 |
QStyle::CE_DockWidgetTitle | 30 | 停靠窗口的标题。 |
QStyle::CE_Splitter | 28 | 分割线控件;另请参阅QSplitter 。 |
QStyle::CE_CheckBox | 3 | 一个QCheckBox ,绘制PE_IndicatorCheckBox 、CE_CheckBoxLabel和PE_FrameFocusRect 。 |
QStyle::CE_CheckBoxLabel | 4 | QCheckBox 的标签(文本或位图)。 |
QStyle::CE_RadioButton | 5 | QRadioButton ,用于绘制PE_IndicatorRadioButton 、CE_RadioButtonLabel 和PE_FrameFocusRect 。 |
QStyle::CE_RadioButtonLabel | 6 | QRadioButton 的标签(文本或位图)。 |
QStyle::CE_TabBarTab | 7 | QTabBar 中的选项卡和标签。 |
QStyle::CE_TabBarTabShape | 8 | 选项卡栏中的选项卡形状。 |
QStyle::CE_TabBarTabLabel | 9 | 选项卡内的标签。 |
QStyle::CE_ProgressBar | 10 | QProgressBar ,绘制 CE_ProgressBarGroove、CE_ProgressBarContents 和 CE_ProgressBarLabel。 |
QStyle::CE_ProgressBarGroove | 11 | QProgressBar 中绘制进度指示器的凹槽。 |
QStyle::CE_ProgressBarContents | 12 | QProgressBar 的进度指示器。 |
QStyle::CE_ProgressBarLabel | 13 | QProgressBar 的文本标签。 |
QStyle::CE_ToolButtonLabel | 22 | 工具按钮的标签。 |
QStyle::CE_MenuBarItem | 20 | QMenuBar 中的菜单项。 |
QStyle::CE_MenuBarEmptyArea | 21 | QMenuBar 中的空白区域。 |
QStyle::CE_MenuItem | 14 | QMenu 中的菜单项。 |
QStyle::CE_MenuScroller | 15 | 当样式支持滚动时,QMenu 中的滚动区域。 |
QStyle::CE_MenuTearoff | 18 | 代表QMenu 中可撕下部分的菜单项。 |
QStyle::CE_MenuEmptyArea | 19 | 菜单中不包含菜单项的区域。 |
QStyle::CE_MenuHMargin | 17 | 菜单左右两侧的水平额外空间。 |
QStyle::CE_MenuVMargin | 16 | 菜单顶部/底部的垂直额外空间。 |
QStyle::CE_ToolBoxTab | 26 | QToolBox 中的工具箱标签页和标签。 |
QStyle::CE_SizeGrip | 27 | 窗口调整大小控点;另请参见QSizeGrip 。 |
QStyle::CE_Header | 23 | 标题栏。 |
QStyle::CE_HeaderSection | 24 | 标题部分。 |
QStyle::CE_HeaderLabel | 25 | 页眉的标签。 |
QStyle::CE_ScrollBarAddLine | 31 | 滚动条行增加指示器。(即向下滚动);另请参阅QScrollBar 。 |
QStyle::CE_ScrollBarSubLine | 32 | 滚动条行数减少指示器(即向上滚动)。 |
QStyle::CE_ScrollBarAddPage | 33 | 滚动条页面增加指示器(即“页面向下”)。 |
QStyle::CE_ScrollBarSubPage | 34 | 滚动条页面减少指示器(即向上翻页)。 |
QStyle::CE_ScrollBarSlider | 35 | 滚动条滑块。 |
QStyle::CE_ScrollBarFirst | 36 | 滚动条首行指示器(即“首页”)。 |
QStyle::CE_ScrollBarLast | 37 | 滚动条末行指示器(即“末尾”)。 |
QStyle::CE_RubberBand | 29 | 例如在图标视图中使用的“橡皮筋”效果。 |
QStyle::CE_FocusFrame | 38 | 由样式控制的焦点框。 |
QStyle::CE_ItemViewItem | 45 | 项目视图内的项目。 |
QStyle::CE_CustomBase | 0xf0000000 | 自定义控件元素的基准值;自定义值必须大于此值。 |
QStyle::CE_ComboBoxLabel | 39 | 不可编辑的QComboBox 的标签。 |
QStyle::CE_ToolBar | 40 | 类似于QToolBar 的工具栏。 |
QStyle::CE_ToolBoxTabShape | 41 | 工具箱的选项卡形状。 |
QStyle::CE_ToolBoxTabLabel | 42 | 工具箱的选项卡标签。 |
QStyle::CE_HeaderEmptyArea | 43 | 标题视图中没有标题部分的区域。 |
QStyle::CE_ShapedFrame | 46 | 具有QStyleOptionFrame 中指定形状的框架;参见QFrame 。 |
另请参阅 drawControl()。
enum QStyle::PixelMetric
此枚举描述了各种可用的像素度量。像素度量是一种由单个像素值表示的、与样式相关的尺寸。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::PM_ButtonMargin | 0 | 按钮标签与框架之间的空白区域大小。 |
QStyle::PM_DockWidgetTitleBarButtonMargin | 73 | 停靠控件的标题栏按钮标签与边框之间的空白距离。 |
QStyle::PM_ButtonDefaultIndicator | 1 | 默认按钮指示器框的宽度。 |
QStyle::PM_MenuButtonIndicator | 2 | 与控件高度成比例的菜单按钮指示器宽度。 |
QStyle::PM_ButtonShiftHorizontal | 3 | 按钮按下时,其内容的水平偏移量。 |
QStyle::PM_ButtonShiftVertical | 4 | 按钮按下时内容的垂直偏移量。 |
QStyle::PM_DefaultFrameWidth | 5 | 默认边框宽度(通常为 2)。 |
QStyle::PM_SpinBoxFrameWidth | 6 | 旋转框的边框宽度,默认值为 PM_DefaultFrameWidth。 |
QStyle::PM_ComboBoxFrameWidth | 7 | 组合框的边框宽度,默认为 PM_DefaultFrameWidth。 |
QStyle::PM_MdiSubWindowFrameWidth | 44 | MDI 窗口的边框宽度。 |
QStyle::PM_MdiSubWindowMinimizedWidth | 45 | 最小化 MDI 窗口的宽度。 |
QStyle::PM_LayoutLeftMargin | 75 | QLayout 的默认left margin 。 |
QStyle::PM_LayoutTopMargin | 76 | QLayout 的默认top margin 。 的默认 。 |
QStyle::PM_LayoutRightMargin | 77 | QLayout 的默认right margin 。 |
QStyle::PM_LayoutBottomMargin | 78 | QLayout 的默认bottom margin 。 |
QStyle::PM_LayoutHorizontalSpacing | 79 | QLayout 的默认horizontal spacing 。 |
QStyle::PM_LayoutVerticalSpacing | 80 | QLayout 的默认vertical spacing 。 |
QStyle::PM_MaximumDragDistance | 8 | 拖动时鼠标与滚动条之间允许的最大距离。超过指定距离将导致滑块跳回原始位置;值为 -1 时将禁用此行为。 |
QStyle::PM_ScrollBarExtent | 9 | 垂直滚动条的宽度以及水平滚动条的高度。 |
QStyle::PM_ScrollBarSliderMin | 10 | 垂直滚动条滑块的最小高度和水平滚动条滑块的最小宽度。 |
QStyle::PM_SliderThickness | 11 | 滑块总厚度。 |
QStyle::PM_SliderControlThickness | 12 | 滑块手柄的厚度。 |
QStyle::PM_SliderLength | 13 | 滑块的长度。 |
QStyle::PM_SliderTickmarkOffset | 14 | 刻度线与滑块之间的偏移量。 |
QStyle::PM_SliderSpaceAvailable | 15 | 滑块可移动的可用空间。 |
QStyle::PM_DockWidgetSeparatorExtent | 16 | 水平停靠窗口中分隔线的宽度以及垂直停靠窗口中分隔线的高度。 |
QStyle::PM_DockWidgetHandleExtent | 17 | 水平停靠窗口中控件的宽度以及垂直停靠窗口中控件的高度。 |
QStyle::PM_DockWidgetFrameWidth | 18 | 停靠窗口的边框宽度。 |
QStyle::PM_DockWidgetTitleMargin | 70 | 停靠窗口标题的边距。 |
QStyle::PM_MenuBarPanelWidth | 33 | 菜单栏的边框宽度,默认值为 PM_DefaultFrameWidth。 |
QStyle::PM_MenuBarItemSpacing | 34 | 菜单栏项目之间的间距。 |
QStyle::PM_MenuBarHMargin | 36 | 菜单栏项目之间的间距以及项目与菜单栏左右边缘之间的间距。 |
QStyle::PM_MenuBarVMargin | 35 | 菜单栏项目与菜单栏顶部/底部的间距。 |
QStyle::PM_ToolBarFrameWidth | 52 | 工具栏周围边框的宽度。 |
QStyle::PM_ToolBarHandleExtent | 53 | 水平工具栏中工具栏控件的宽度,以及垂直工具栏中控件的高度。 |
QStyle::PM_ToolBarItemMargin | 55 | 工具栏边框与项目之间的间距。 |
QStyle::PM_ToolBarItemSpacing | 54 | 工具栏项目之间的间距。 |
QStyle::PM_ToolBarSeparatorExtent | 56 | 水平工具栏中分隔符的宽度,以及垂直工具栏中分隔符的高度。 |
QStyle::PM_ToolBarExtensionExtent | 57 | 水平工具栏中工具栏扩展按钮的宽度,以及垂直工具栏中该按钮的高度。 |
QStyle::PM_TabBarTabOverlap | 19 | 标签应重叠的像素数。(目前仅用于样式中,不适用于QTabBar 内部) |
QStyle::PM_TabBarTabHSpace | 20 | 添加到标签宽度的额外空间。 |
QStyle::PM_TabBarTabVSpace | 21 | 添加到标签高度的额外空间。 |
QStyle::PM_TabBarBaseHeight | 22 | 标签栏与标签页之间的区域高度。 |
QStyle::PM_TabBarBaseOverlap | 23 | 标签栏与标签栏底座重叠的像素数。 |
QStyle::PM_TabBarScrollButtonWidth | 51 | |
QStyle::PM_TabBarTabShiftHorizontal | 49 | 选中标签页时的水平像素偏移量。 |
QStyle::PM_TabBarTabShiftVertical | 50 | 选中标签页时的垂直像素偏移量。 |
QStyle::PM_ProgressBarChunkWidth | 24 | 进度条指示器中一个区段的宽度。 |
QStyle::PM_SplitterWidth | 25 | 分隔线的宽度。 |
QStyle::PM_TitleBarHeight | 26 | 标题栏的高度。 |
QStyle::PM_IndicatorWidth | 37 | 复选框指示器的宽度。 |
QStyle::PM_IndicatorHeight | 38 | 复选框指示器的高度。 |
QStyle::PM_ExclusiveIndicatorWidth | 39 | 单选按钮指示器的宽度。 |
QStyle::PM_ExclusiveIndicatorHeight | 40 | 单选按钮指示符的高度。 |
QStyle::PM_MenuPanelWidth | 30 | QMenu 的边框宽度(应用于所有边)。 |
QStyle::PM_MenuHMargin | 28 | QMenu 的附加边框(用于左右两侧)。 |
QStyle::PM_MenuVMargin | 29 | QMenu 的额外边框(用于顶部和底部)。 |
QStyle::PM_MenuScrollerHeight | 27 | QMenu 中滚动区域的高度。 |
QStyle::PM_MenuTearoffHeight | 31 | QMenu 中撕下区域的高度。 |
QStyle::PM_MenuDesktopFrameWidth | 32 | 桌面版菜单的框架宽度。 |
QStyle::PM_HeaderMarkSize | 47 | 页眉中排序指示器的尺寸。 |
QStyle::PM_HeaderGripMargin | 48 | 页眉中调整大小控点的大小。 |
QStyle::PM_HeaderMargin | 46 | 排序指示符与文本之间的边距大小。 |
QStyle::PM_SpinBoxSliderHeight | 58 | 可选旋转框滑块的高度。 |
QStyle::PM_ToolBarIconSize | 59 | 默认工具栏图标大小 |
QStyle::PM_SmallIconSize | 62 | 默认小图标大小 |
QStyle::PM_LargeIconSize | 63 | 默认大图标大小 |
QStyle::PM_FocusFrameHMargin | 65 | 焦点框超出控件的水平边距。 |
QStyle::PM_FocusFrameVMargin | 64 | 焦点框超出控件的垂直边距。 |
QStyle::PM_IconViewIconSize | 61 | 图标视图中图标的默认大小。 |
QStyle::PM_ListViewIconSize | 60 | 列表视图中图标的默认大小。 |
QStyle::PM_ToolTipLabelFrameWidth | 66 | 工具提示标签的边框宽度。 |
QStyle::PM_CheckBoxLabelSpacing | 67 | 复选框指示符与其标签之间的间距。 |
QStyle::PM_RadioButtonLabelSpacing | 74 | 单选按钮指示符与其标签之间的间距。 |
QStyle::PM_TabBarIconSize | 68 | 标签栏的默认图标大小。 |
QStyle::PM_SizeGripSize | 69 | 大小控点的大小。 |
QStyle::PM_MessageBoxIconSize | 71 | 消息框中标准图标的大小 |
QStyle::PM_ButtonIconSize | 72 | 按钮图标的默认大小 |
QStyle::PM_TextCursorWidth | 82 | 行编辑框或文本编辑框中光标的宽度 |
QStyle::PM_TabBar_ScrollButtonOverlap | 81 | 标签栏中左右按钮之间的间距。 |
QStyle::PM_TabCloseIndicatorWidth | 83 | 标签栏中标签页上的关闭按钮的默认宽度。 |
QStyle::PM_TabCloseIndicatorHeight | 84 | 标签栏中某个标签页上的关闭按钮的默认高度。 |
QStyle::PM_ScrollView_ScrollBarSpacing | 85 | 当设置了SH_ScrollView_FrameOnlyAroundContents 时,框架与滚动条之间的距离。 |
QStyle::PM_ScrollView_ScrollBarOverlap | 86 | 滚动条与滚动内容之间的重叠 |
QStyle::PM_SubMenuOverlap | 87 | 子菜单与其父菜单之间的水平重叠区域。 |
QStyle::PM_TreeViewIndentation (since Qt 5.4) | 88 | 树视图中项目的缩进。 |
QStyle::PM_HeaderDefaultSectionSizeHorizontal | 89 | 水平标题栏中各部分的默认大小。该枚举值自 Qt 5.5 起引入。 |
QStyle::PM_HeaderDefaultSectionSizeVertical | 90 | 垂直标题栏中各部分的默认大小。该枚举值自 Qt 5.5 起引入。 |
QStyle::PM_TitleBarButtonIconSize (since Qt 5.8) | 91 | 标题栏上按钮图标的大小。 |
QStyle::PM_TitleBarButtonSize (since Qt 5.8) | 92 | 标题栏上按钮的大小。 |
QStyle::PM_LineEditIconSize (since Qt 6.2) | 93 | 行编辑框中图标的默认大小。 |
QStyle::PM_LineEditIconMargin (since Qt 6.3) | 94 | 行编辑框中图标的边距。 |
QStyle::PM_CustomBase | 0xf0000000 | 自定义像素度量单位的基准值。自定义值必须大于该值。 |
另请参阅 pixelMetric()。
enum QStyle::PrimitiveElement
此枚举描述了各种基本控件。基本控件是指常见的图形用户界面控件,例如复选框指示符或按钮斜面。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::PE_PanelButtonCommand | 13 | 用于触发操作的按钮,例如QPushButton 。 |
QStyle::PE_FrameDefaultButton | 1 | 默认按钮周围的边框,例如在对话框中。 |
QStyle::PE_PanelButtonBevel | 14 | 带有按钮斜边的通用面板。 |
QStyle::PE_PanelButtonTool | 15 | 用于“工具”按钮的面板,与QToolButton 配合使用。 |
QStyle::PE_PanelLineEdit | 18 | 用于QLineEdit 的面板。 |
QStyle::PE_IndicatorButtonDropDown | 24 | 下拉按钮的指示器,例如显示菜单的工具按钮。 |
QStyle::PE_FrameFocusRect | 3 | 通用焦点指示器。 |
QStyle::PE_IndicatorArrowUp | 22 | 通用向上箭头。 |
QStyle::PE_IndicatorArrowDown | 19 | 通用向下箭头。 |
QStyle::PE_IndicatorArrowRight | 21 | 通用右箭头。 |
QStyle::PE_IndicatorArrowLeft | 20 | 通用左箭头。 |
QStyle::PE_IndicatorSpinUp | 35 | 旋转控件的向上符号,例如QSpinBox 。 |
QStyle::PE_IndicatorSpinDown | 32 | 旋转控件的向下符号。 |
QStyle::PE_IndicatorSpinPlus | 34 | 旋转控件的“增加”符号。 |
QStyle::PE_IndicatorSpinMinus | 33 | 旋转控件的减号符号。 |
QStyle::PE_IndicatorItemViewItemCheck | 25 | 视图项的开/关指示符。 |
QStyle::PE_IndicatorCheckBox | 26 | 开/关指示符,例如QCheckBox 。 |
QStyle::PE_IndicatorRadioButton | 31 | 排他性开/关指示器,例如QRadioButton 。 |
QStyle::PE_IndicatorDockWidgetResizeHandle | 27 | 停靠窗口的调整大小控点。 |
QStyle::PE_Frame | 0 | 通用边框 |
QStyle::PE_FrameMenu | 6 | 用于弹出窗口/菜单的框架;另请参见QMenu 。 |
QStyle::PE_PanelMenuBar | 16 | 用于菜单栏的面板。 |
QStyle::PE_PanelScrollAreaCorner | 40 | 位于滚动区域右下角(或左下角)的面板。 |
QStyle::PE_FrameDockWidget | 2 | 用于停靠窗口和工具栏的面板框架。 |
QStyle::PE_FrameTabWidget | 8 | 用于标签控件的框架。 |
QStyle::PE_FrameLineEdit | 5 | 行编辑框的面板框架。 |
QStyle::PE_FrameGroupBox | 4 | 组框周围的面板边框。 |
QStyle::PE_FrameButtonBevel | 10 | 按钮斜角的面板边框。 |
QStyle::PE_FrameButtonTool | 11 | 工具按钮的面板边框。 |
QStyle::PE_IndicatorHeaderArrow | 28 | 用于指示列表或表格标题排序方向的箭头。 |
QStyle::PE_FrameStatusBarItem | 7 | 状态栏项目边框;另请参阅QStatusBar 。 |
QStyle::PE_FrameWindow | 9 | MDI 窗口或停靠窗口周围的边框。 |
QStyle::PE_IndicatorMenuCheckMark | 29 | 菜单中使用的复选标记。 |
QStyle::PE_IndicatorProgressChunk | 30 | 进度条指示器的部分;另请参见QProgressBar 。 |
QStyle::PE_IndicatorBranch | 23 | 用于表示树视图中树的分支的线条。 |
QStyle::PE_IndicatorToolBarHandle | 36 | 工具栏的控点。 |
QStyle::PE_IndicatorToolBarSeparator | 37 | 工具栏中的分隔符。 |
QStyle::PE_PanelToolBar | 17 | 工具栏的面板。 |
QStyle::PE_PanelTipLabel | 38 | 提示标签的面板。 |
QStyle::PE_FrameTabBarBase | 12 | 为标签栏绘制的边框,通常用于绘制不属于标签控件的标签栏。 |
QStyle::PE_IndicatorTabTear | 39 | 已弃用。请改用 PE_IndicatorTabTearLeft。 |
QStyle::PE_IndicatorTabTearLeft | PE_IndicatorTabTear | 当标签页数量较多时,用于指示可见标签栏左侧有部分标签页被滚动超出显示范围的指示器。 |
QStyle::PE_IndicatorTabTearRight | 49 | 当标签页数量较多时,用于指示标签页部分超出可见标签栏右侧范围的指示器。 |
QStyle::PE_IndicatorColumnViewArrow | 42 | QColumnView 中的箭头。 |
QStyle::PE_Widget | 41 | 一个普通的QWidget 。 |
QStyle::PE_CustomBase | 0xf000000 | 自定义基元元素的基准值。高于此值的所有数值均保留供自定义使用。自定义值必须大于此值。 |
QStyle::PE_IndicatorItemViewItemDrop | 43 | 在项目视图中进行拖放操作时,用于显示项目视图中某项即将被放置位置的指示器。 |
QStyle::PE_PanelItemViewItem | 44 | 项目视图中项目的背景。 |
QStyle::PE_PanelItemViewRow | 45 | 项目视图中某行背景。 |
QStyle::PE_PanelStatusBar | 46 | 状态栏的面板。 |
QStyle::PE_IndicatorTabClose | 47 | 标签栏上的关闭按钮。 |
QStyle::PE_PanelMenu | 48 | 菜单的面板。 |
另请参阅 drawPrimitive()。
enum QStyle::RequestSoftwareInputPanel
该枚举描述了在何种情况下,支持输入功能的小部件会请求软件输入面板。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::RSIP_OnMouseClickAndAlreadyFocused | 0 | 如果用户点击控件,且该控件已获得焦点,则请求输入面板。 |
QStyle::RSIP_OnMouseClick | 1 | 如果用户点击小部件,则请求输入面板。 |
另请参阅 QInputMethod 。
enum QStyle::StandardPixmap
此枚举描述了可用的标准位图。标准位图是指能够遵循现有 GUI 样式或指南的位图。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::SP_TitleBarMinButton | 1 | 标题栏上的最小化按钮(例如,在QMdiSubWindow 中)。 |
QStyle::SP_TitleBarMenuButton | 0 | 标题栏上的菜单按钮。 |
QStyle::SP_TitleBarMaxButton | 2 | 标题栏上的最大化按钮。 |
QStyle::SP_TitleBarCloseButton | 3 | 标题栏上的“关闭”按钮。 |
QStyle::SP_TitleBarNormalButton | 4 | 标题栏上的“正常”(恢复)按钮。 |
QStyle::SP_TitleBarShadeButton | 5 | 标题栏上的遮蔽按钮。 |
QStyle::SP_TitleBarUnshadeButton | 6 | 标题栏上的“取消遮罩”按钮。 |
QStyle::SP_TitleBarContextHelpButton | 7 | 标题栏上的“上下文帮助”按钮。 |
QStyle::SP_MessageBoxInformation | 9 | “信息”图标。 |
QStyle::SP_MessageBoxWarning | 10 | “警告”图标。 |
QStyle::SP_MessageBoxCritical | 11 | “严重”图标。 |
QStyle::SP_MessageBoxQuestion | 12 | “问号”图标。 |
QStyle::SP_DesktopIcon | 13 | “桌面”图标。 |
QStyle::SP_TrashIcon | 14 | “垃圾桶”图标。 |
QStyle::SP_ComputerIcon | 15 | “我的电脑”图标。 |
QStyle::SP_DriveFDIcon | 16 | 软盘图标。 |
QStyle::SP_DriveHDIcon | 17 | 硬盘图标。 |
QStyle::SP_DriveCDIcon | 18 | CD图标。 |
QStyle::SP_DriveDVDIcon | 19 | DVD图标。 |
QStyle::SP_DriveNetIcon | 20 | 网络图标。 |
QStyle::SP_DirHomeIcon | 56 | 主目录图标。 |
QStyle::SP_DirOpenIcon | 21 | 打开的目录图标。 |
QStyle::SP_DirClosedIcon | 22 | 关闭的目录图标。 |
QStyle::SP_DirIcon | 38 | 目录图标。 |
QStyle::SP_DirLinkIcon | 23 | 指向目录的链接图标。 |
QStyle::SP_DirLinkOpenIcon | 24 | 指向打开文件夹图标的链接。 |
QStyle::SP_FileIcon | 25 | 文件图标。 |
QStyle::SP_FileLinkIcon | 26 | 文件链接图标。 |
QStyle::SP_FileDialogStart | 29 | 文件对话框中的“开始”图标。 |
QStyle::SP_FileDialogEnd | 30 | 文件对话框中的“结束”图标。 |
QStyle::SP_FileDialogToParent | 31 | 文件对话框中的“父目录”图标。 |
QStyle::SP_FileDialogNewFolder | 32 | 文件对话框中的“创建新文件夹”图标。 |
QStyle::SP_FileDialogDetailedView | 33 | 文件对话框中的“详细视图”图标。 |
QStyle::SP_FileDialogInfoView | 34 | 文件对话框中的“文件信息”图标。 |
QStyle::SP_FileDialogContentsView | 35 | 文件对话框中的“内容视图”图标。 |
QStyle::SP_FileDialogListView | 36 | 文件对话框中的“列表视图”图标。 |
QStyle::SP_FileDialogBack | 37 | 文件对话框中的“返回”箭头。 |
QStyle::SP_DockWidgetCloseButton | 8 | 停靠窗口上的“关闭”按钮(另请参阅QDockWidget )。 |
QStyle::SP_ToolBarHorizontalExtensionButton | 27 | 水平工具栏的扩展按钮。 |
QStyle::SP_ToolBarVerticalExtensionButton | 28 | 垂直工具栏的扩展按钮。 |
QStyle::SP_DialogOkButton | 39 | QDialogButtonBox 中标准“确定”按钮的图标。 |
QStyle::SP_DialogCancelButton | 40 | QDialogButtonBox 中标准“取消”按钮的图标。 |
QStyle::SP_DialogHelpButton | 41 | QDialogButtonBox 中标准“帮助”按钮的图标。 |
QStyle::SP_DialogOpenButton | 42 | QDialogButtonBox 中标准“打开”按钮的图标。 |
QStyle::SP_DialogSaveButton | 43 | QDialogButtonBox 中标准“保存”按钮的图标。 |
QStyle::SP_DialogCloseButton | 44 | QDialogButtonBox 中标准“关闭”按钮的图标。 |
QStyle::SP_DialogApplyButton | 45 | QDialogButtonBox 中标准“应用”按钮的图标。 |
QStyle::SP_DialogResetButton | 46 | QDialogButtonBox 中标准“重置”按钮的图标。 |
QStyle::SP_DialogDiscardButton | 47 | QDialogButtonBox 中标准“放弃”按钮的图标。 |
QStyle::SP_DialogYesButton | 48 | QDialogButtonBox 中标准“是”按钮的图标。 |
QStyle::SP_DialogNoButton | 49 | QDialogButtonBox 中标准“否”按钮的图标。 |
QStyle::SP_ArrowUp | 50 | 向上箭头图标。 |
QStyle::SP_ArrowDown | 51 | 向下箭头图标。 |
QStyle::SP_ArrowLeft | 52 | 指向左侧的箭头图标。 |
QStyle::SP_ArrowRight | 53 | 向右箭头图标。 |
QStyle::SP_ArrowBack | 54 | 当当前布局方向为Qt::LeftToRight 时,等同于SP_ArrowLeft;否则等同于SP_ArrowRight。 |
QStyle::SP_ArrowForward | 55 | 当当前布局方向为Qt::LeftToRight 时,等同于SP_ArrowRight;否则等同于SP_ArrowLeft。 |
QStyle::SP_CommandLink | 57 | 用于表示 Vista 风格命令链接图标的图标。 |
QStyle::SP_VistaShield | 58 | 用于指示 Windows Vista 上的 UAC 提示的图标。在所有其他平台上,这将返回一个空像素图或图标。 |
QStyle::SP_BrowserReload | 59 | 表示应重新加载当前页面的图标。 |
QStyle::SP_BrowserStop | 60 | 表示应停止页面加载的图标。 |
QStyle::SP_MediaPlay | 61 | 表示应开始播放媒体的图标。 |
QStyle::SP_MediaStop | 62 | 表示应停止媒体播放的图标。 |
QStyle::SP_MediaPause | 63 | 表示应暂停媒体播放的图标。 |
QStyle::SP_MediaSkipForward | 64 | 表示应快进的图标。 |
QStyle::SP_MediaSkipBackward | 65 | 表示媒体应向后跳过的图标。 |
QStyle::SP_MediaSeekForward | 66 | 表示媒体应向前寻址的图标。 |
QStyle::SP_MediaSeekBackward | 67 | 表示媒体应向后寻址的图标。 |
QStyle::SP_MediaVolume | 68 | 表示音量控制的图标。 |
QStyle::SP_MediaVolumeMuted | 69 | 表示静音的图标。 |
QStyle::SP_LineEditClearButton (since Qt 5.2) | 70 | QLineEdit 中标准“清除”按钮的图标。 |
QStyle::SP_DialogYesToAllButton (since Qt 5.14) | 71 | QDialogButtonBox 中标准“YesToAll”按钮的图标。 |
QStyle::SP_DialogNoToAllButton (since Qt 5.14) | 72 | QDialogButtonBox 中标准“NoToAll”按钮的图标。 |
QStyle::SP_DialogSaveAllButton (since Qt 5.14) | 73 | QDialogButtonBox 中标准“全部保存”按钮的图标。 |
QStyle::SP_DialogAbortButton (since Qt 5.14) | 74 | QDialogButtonBox 中标准“取消”按钮的图标。 |
QStyle::SP_DialogRetryButton (since Qt 5.14) | 75 | QDialogButtonBox 中标准“重试”按钮的图标。 |
QStyle::SP_DialogIgnoreButton (since Qt 5.14) | 76 | QDialogButtonBox 中标准“忽略”按钮的图标。 |
QStyle::SP_RestoreDefaultsButton (since Qt 5.14) | 77 | QDialogButtonBox 中标准“恢复默认值”按钮的图标。 |
QStyle::SP_TabCloseButton (since Qt 6.3) | 78 | QTabBar 标签页中的关闭按钮图标。 |
QStyle::SP_TabScrollLeftButton (since Qt 6.12) | 79 | QTabBar 中“向左滚动”按钮的图标。 |
QStyle::SP_TabScrollRightButton (since Qt 6.12) | 80 | QTabBar 中“向右滚动”按钮的图标。 |
QStyle::SP_TabScrollUpButton (since Qt 6.12) | 81 | QTabBar 的向上滚动按钮图标。 |
QStyle::SP_TabScrollDownButton (since Qt 6.12) | 82 | QTabBar 的向下滚动按钮图标。 |
QStyle::SP_CustomBase | 0xf0000000 | 自定义标准位图的基准值;自定义值必须大于此值。 |
另请参阅 standardIcon()。
enum QStyle::StateFlag
flags QStyle::State
此枚举描述了在绘制基元元素时使用的标志。
请注意,并非所有基元都会使用这些标志,而且这些标志对不同的项目可能具有不同的含义。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::State_None | 0x00000000 | 表示该小部件没有状态。 |
QStyle::State_Active | 0x00010000 | 表示该小部件处于活动状态。 |
QStyle::State_AutoRaise | 0x00001000 | 用于指示是否应在工具按钮上使用“自动提升”外观。 |
QStyle::State_Children | 0x00080000 | 用于指示项目视图分支是否具有子项。 |
QStyle::State_DownArrow | 0x00000040 | 用于指示小部件上是否应显示向下箭头。 |
QStyle::State_Editing | 0x00400000 | 已弃用。由于编辑器会覆盖在项目视图单元格之上,因此不再使用。 |
QStyle::State_Enabled | 0x00000001 | 用于指示小部件是否已启用。 |
QStyle::State_HasFocus | 0x00000100 | 用于指示小部件是否拥有焦点。 |
QStyle::State_Horizontal | 0x00000080 | 用于指示控件是否按水平方式布局,例如工具栏。 |
QStyle::State_KeyboardFocusChange | 0x00800000 | 用于指示焦点是否通过键盘(例如 Tab、BackTab 或快捷键)进行了切换。 |
QStyle::State_MouseOver | 0x00002000 | 用于指示小部件是否位于鼠标下方。 |
QStyle::State_NoChange | 0x00000010 | 用于指示三态复选框。 |
QStyle::State_Off | 0x00000008 | 用于指示控件是否未被选中。 |
QStyle::State_On | 0x00000020 | 用于指示控件是否已被选中。 |
QStyle::State_Raised | 0x00000002 | 用于指示按钮是否处于凸起状态。 |
QStyle::State_ReadOnly | 0x02000000 | 用于指示小部件是否为只读。 |
QStyle::State_Selected | 0x00008000 | 用于指示小部件是否被选中。 |
QStyle::State_Item | 0x00100000 | 由项目视图使用,用于指示是否应绘制水平分支。 |
QStyle::State_Open | 0x00040000 | 由项目视图用于指示树分支是否已展开。 |
QStyle::State_Sibling | 0x00200000 | 由项目视图使用,用于指示是否需要绘制一条垂直线(用于同级节点)。 |
QStyle::State_Sunken | 0x00000004 | 用于指示控件是否处于凹陷或按下状态。 |
QStyle::State_UpArrow | 0x00004000 | 用于指示控件上是否应显示向上箭头。 |
QStyle::State_Mini | 0x08000000 | 用于指示迷你风格的 Mac 控件或按钮。 |
QStyle::State_Small | 0x04000000 | 用于指示小尺寸风格的 Mac 小部件或按钮。 |
State 类型是QFlags<StateFlag> 的 typedef。它存储 StateFlag 值的或(OR)组合。
另请参阅 drawPrimitive()。
enum QStyle::StyleHint
此枚举描述了可用的样式提示。样式提示是指关于外观和/或风格的一般性提示。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::SH_EtchDisabledText | 0 | 禁用文本会像在 Windows 上一样呈现为“蚀刻”效果。 |
QStyle::SH_DitherDisabledText | 1 | 禁用文本采用 Motif 中的抖动效果。 |
QStyle::SH_ScrollBar_ContextMenu | 62 | 滚动条是否具有上下文菜单。 |
QStyle::SH_ScrollBar_MiddleClickAbsolutePosition | 2 | 一个布尔值。如果为真,在中键单击滚动条时,滑块将跳转到该位置。如果为假,则忽略中键单击操作。 |
QStyle::SH_ScrollBar_LeftClickAbsolutePosition | 39 | 一个布尔值。若为真,左键单击滚动条将使滑块跳转至该位置;若为假,左键单击将根据各控件的具体行为进行响应。 |
QStyle::SH_ScrollBar_ScrollWhenPointerLeavesControl | 3 | 一个布尔值。若为真,当点击滚动条SubControl ,按住鼠标按钮并将指针移出SubControl 时,滚动条将继续滚动。若为假,当指针离开SubControl 时,滚动条将停止滚动。 |
QStyle::SH_ScrollBar_RollBetweenButtons | 63 | 一个布尔值。若为 true,则点击滚动条按钮(SC_ScrollBarAddLine 或SC_ScrollBarSubLine )并拖动至对侧按钮(滚动操作)时,将按下新按钮并释放原按钮;若为 false,则原按钮被释放且无任何反应(类似于按压式按钮)。 |
QStyle::SH_TabBar_Alignment | 5 | QTabWidget 中选项卡的对齐方式。可能的值包括Qt::AlignLeft 、Qt::AlignCenter 和Qt::AlignRight 。 |
QStyle::SH_Header_ArrowAlignment | 6 | 排序指示器的位置可能出现在列表或表格的表头中。可能的值是Qt::Alignment 的值(即Qt::AlignmentFlag 标志的“或”组合)。 |
QStyle::SH_Slider_SnapToValue | 7 | 滑块在移动时会像在 Windows 上一样对齐到特定数值。 |
QStyle::SH_Slider_SloppyKeyEvents | 8 | 按键操作采用“宽松”处理方式,即在垂直滑块上向左按键会减少一行。 |
QStyle::SH_ProgressDialog_CenterCancelButton | 9 | 进度对话框中的按钮居中,否则右对齐。 |
QStyle::SH_ProgressDialog_TextLabelAlignment | 10 | 进度对话框中文本标签的对齐方式;在 Windows 上为Qt::AlignCenter ,在其他情况下为Qt::AlignVCenter 。 |
QStyle::SH_PrintDialog_RightAlignButtons | 11 | 打印对话框中的按钮右对齐,与 Windows 上的做法一致。 |
QStyle::SH_MainWindow_SpaceBelowMenuBar | 12 | 菜单栏与停靠区域之间留出一到两个像素的间距,与 Windows 上的做法一致。 |
QStyle::SH_FontDialog_SelectAssociatedText | 13 | 在行编辑框中选择文本,或从列表框中选择项目,或行编辑框获得焦点时,均按 Windows 中的做法处理。 |
QStyle::SH_Menu_KeyboardSearch | 66 | 输入文字时,系统会搜索菜单中的相关项目;否则,仅考虑助记符。 |
QStyle::SH_Menu_AllowActiveAndDisabled | 14 | 允许禁用的菜单项处于活动状态。 |
QStyle::SH_Menu_SpaceActivatesItem | 15 | 按空格键可激活该选项,与 Motif 上的操作一致。 |
QStyle::SH_Menu_SubMenuPopupDelay | 16 | 打开子菜单前等待的毫秒数(Windows 上为 256,Motif 上为 96)。 |
QStyle::SH_Menu_Scrollable | 30 | 弹出菜单是否必须支持滚动。 |
QStyle::SH_Menu_SloppySubMenus | 33 | 弹出菜单是否必须支持用户在鼠标光标穿过菜单的其他项目时将其移动到子菜单上。大多数现代桌面平台都支持此功能。 |
QStyle::SH_Menu_SubMenuUniDirection | 105 | 自 Qt 5.5 起。指针是否必须朝子菜单方向移动(如 macOS 上的情况),或者只要在宽松超时前到达子菜单,指针即可沿任意方向移动。 |
QStyle::SH_Menu_SubMenuUniDirectionFailCount | 106 | 自 Qt 5.5 起。当定义了 SH_Menu_SubMenuUniDirection 时,此枚举定义了在“宽松”子菜单被丢弃之前允许失败的鼠标移动次数。这可用于控制单向算法的“严格程度”。 |
QStyle::SH_Menu_SubMenuSloppySelectOtherActions | 107 | 自 Qt 5.5 起。当鼠标移动到宽松子菜单时,是否应选择其他操作项。 |
QStyle::SH_Menu_SubMenuSloppyCloseTimeout | 108 | 自 Qt 5.5 起。用于关闭松散子菜单的超时时间。 |
QStyle::SH_Menu_SubMenuResetWhenReenteringParent | 109 | 自 Qt 5.5 起。当从子子菜单进入父菜单时,是否应重置“松散”状态,从而有效关闭子菜单并使当前子菜单处于活动状态。 |
QStyle::SH_Menu_SubMenuDontStartSloppyOnLeave | 110 | 自 Qt 5.5 起。当鼠标离开子菜单时,不再启动松散计时器。 |
QStyle::SH_ScrollView_FrameOnlyAroundContents | 17 | 滚动视图应仅在内容周围绘制边框(如 Motif),还是在内容、滚动条和角控件周围绘制边框(如 Windows)。 |
QStyle::SH_MenuBar_AltKeyNavigation | 18 | 可以通过按下 Alt 键,然后使用方向键选择所需项目,在菜单栏项目之间进行导航。 |
QStyle::SH_ComboBox_ListMouseTracking_Current | SH_ComboBox_ListMouseTracking | 下拉列表中的鼠标跟踪功能:光标下方的项目将被设为当前项目(QStyle::State_Selected )。 |
QStyle::SH_ComboBox_ListMouseTracking | 19 | 已弃用。请改用 SH_ComboBox_ListMouseTracking_Current。 |
QStyle::SH_ComboBox_ListMouseTracking_Active | 120 | 在组合框下拉列表中进行鼠标跟踪,光标下方的项目不会被设为当前项目,仅被设为活动项目(QStyle::State_MouseOver )。 |
QStyle::SH_Menu_MouseTracking | 20 | 在弹出菜单中启用鼠标跟踪。 |
QStyle::SH_MenuBar_MouseTracking | 21 | 菜单栏中的鼠标跟踪。 |
QStyle::SH_Menu_FillScreenWithScroll | 45 | 滚动式弹出菜单在滚动时是否应填满屏幕。 |
QStyle::SH_Menu_SelectionWrap | 73 | 弹出窗口是否应允许选项循环显示,即当选中某个选项后,下一项应变为第一项。 |
QStyle::SH_ItemView_ChangeHighlightOnFocus | 22 | 失去焦点时,将选中的项目灰显。 |
QStyle::SH_Widget_ShareActivation | 23 | 启用与浮动无模式对话框的激活共享。 |
QStyle::SH_TabBar_SelectMouseType | 4 | 应由哪种鼠标事件触发选项卡的选中。 |
QStyle::SH_ListViewExpand_SelectMouseType | 40 | 哪种鼠标事件应触发列表视图展开并选中。 |
QStyle::SH_TabBar_PreferNoArrows | 38 | 标签栏是否应建议一种尺寸以避免显示滚动箭头。 |
QStyle::SH_ComboBox_Popup | 25 | 允许将弹出窗口用作组合框的下拉菜单。 |
QStyle::SH_Workspace_FillSpaceOnMaximize | 24 | 工作区应最大化客户端区域。 |
QStyle::SH_TitleBar_NoBorder | 26 | 标题栏没有边框。 |
QStyle::SH_Slider_StopMouseOverSlider | 27 | 当滑块到达鼠标位置时停止自动重复。 |
QStyle::SH_BlinkCursorWhenTextSelected | 28 | 选中文本时光标是否应闪烁。 |
QStyle::SH_RichText_FullWidthSelection | 29 | 富文本选区是否应扩展至文档的整个宽度。 |
QStyle::SH_GroupBox_TextLabelVerticalAlignment | 31 | 如何将组框的文本标签垂直对齐。 |
QStyle::SH_GroupBox_TextLabelColor | 32 | 如何绘制组框的文本标签。 |
QStyle::SH_DialogButtons_DefaultButton | 36 | 在对话框的按钮控件中,哪个按钮具有默认状态。 |
QStyle::SH_ToolBox_SelectedPageTitleBold | 37 | 在QToolBox 中,所选页面标题的加粗程度。 |
QStyle::SH_LineEdit_PasswordCharacter | 35 | 密码所使用的 Unicode 字符。 |
QStyle::SH_LineEdit_PasswordMaskDelay | 103 | 以毫秒为单位,确定可见字符被密码字符遮盖之前的延迟时间。该枚举值在 Qt 5.4 中添加。 |
QStyle::SH_Table_GridLineColor | 34 | 表格网格的 RGBA 值。 |
QStyle::SH_UnderlineShortcut | 41 | 快捷键是否加下划线。 |
QStyle::SH_SpinBox_AnimateButton | 42 | 当在旋转框中按下“上”或“下”时,对点击操作进行动画效果。 |
QStyle::SH_SpinBox_KeyPressAutoRepeatRate | 43 | 旋转框按键的自动重复间隔。 |
QStyle::SH_SpinBox_ClickAutoRepeatRate | 44 | 旋转框鼠标点击的自动重复间隔。 |
QStyle::SH_SpinBox_ClickAutoRepeatThreshold | 83 | 旋转框鼠标点击的自动重复阈值。 |
QStyle::SH_SpinBox_SelectOnStep (since Qt 6.3) | 119 | 使用按钮或上下方向键更改值时,是否自动选中文本。 |
QStyle::SH_ToolTipLabel_Opacity | 46 | 一个整数,表示提示标签的不透明度,0 表示完全透明,255 表示完全不透明。 |
QStyle::SH_DrawMenuBarSeparator | 47 | 指示菜单栏是否绘制分隔线。 |
QStyle::SH_TitleBar_ModifyNotification | 48 | 指示标题栏是否应在已修改的窗口上显示“*”。 |
QStyle::SH_Button_FocusPolicy | 49 | 按钮的默认焦点策略。 |
QStyle::SH_CustomBase | 0xf0000000 | 自定义样式提示的基准值。自定义值必须大于此值。 |
QStyle::SH_MessageBox_UseBorderForButtonSpacing | 50 | 一个布尔值,用于指示是否将按钮边框(计算为按钮高度的一半)用于消息框中按钮的间距。 |
QStyle::SH_MessageBox_CenterButtons | 72 | 一个布尔值,用于指定消息框中的按钮是否应居中显示(参见 QDialogButtonBox::setCentered())。 |
QStyle::SH_MessageBox_TextInteractionFlags | 70 | 一个布尔值,用于指定消息框中的文本是否允许用户交互(例如选择)。 |
QStyle::SH_TitleBar_AutoRaise | 51 | 一个布尔值,用于指示当鼠标悬停在标题栏上的控件上时,这些控件是否应更新。 |
QStyle::SH_ToolButton_PopupDelay | 52 | 一个整数,表示附着在工具按钮上的菜单的弹出延迟(以毫秒为单位)。 |
QStyle::SH_FocusFrame_Mask | 53 | 焦点框的遮罩。 |
QStyle::SH_RubberBand_Mask | 54 | 橡皮筋的遮罩。 |
QStyle::SH_WindowFrame_Mask | 55 | 窗口边框的遮罩。 |
QStyle::SH_SpinControls_DisableOnBounds | 56 | 确定当旋转控件达到旋转范围边界时,是否显示为禁用状态。 |
QStyle::SH_Dial_BackgroundRole | 57 | 定义拨盘控件样式首选的背景角色(如QPalette::ColorRole )。 |
QStyle::SH_ComboBox_LayoutDirection | 58 | 下拉列表框的布局方向。默认情况下,它应与QStyleOption::direction 变量指定的方向一致。 |
QStyle::SH_ItemView_EllipsisLocation | 59 | 当项目文本过长而无法完全显示在视图项目中时,应添加省略号的位置。 |
QStyle::SH_ItemView_ShowDecorationSelected | 60 | 当项目视图中的某个项目被选中时,同时高亮显示分支或其他装饰元素。 |
QStyle::SH_ItemView_ActivateItemOnSingleClick | 61 | 当用户在项目视图中的某项目上单击一次时,发出“activated”信号。否则,该信号在用户双击项目时发出。 |
QStyle::SH_Slider_AbsoluteSetButtons | 64 | 哪些鼠标按钮会导致滑块将值设置为单击位置。 |
QStyle::SH_Slider_PageSetButtons | 65 | 哪些鼠标按钮会触发滑块按页跳转值。 |
QStyle::SH_TabBar_ElideMode | 67 | 标签栏的默认省略样式。 |
QStyle::SH_DialogButtonLayout | 68 | 控制按钮在QDialogButtonBox 中的布局方式,返回QDialogButtonBox::ButtonLayout 枚举。 |
QStyle::SH_WizardStyle | 78 | 控制QWizard 的外观和风格。返回QWizard::WizardStyle 枚举。 |
QStyle::SH_FormLayoutWrapPolicy | 85 | 为QFormLayout 中行如何换行提供默认设置。返回QFormLayout::RowWrapPolicy 枚举。 |
QStyle::SH_FormLayoutFieldGrowthPolicy | 88 | 为QFormLayout 中字段的扩展方式提供默认值。返回QFormLayout::FieldGrowthPolicy 枚举。 |
QStyle::SH_FormLayoutFormAlignment | 89 | 为QFormLayout 在可用空间内对齐内容的方式提供默认值。返回Qt::Alignment 枚举值。 |
QStyle::SH_FormLayoutLabelAlignment | 90 | 为QFormLayout 在可用空间内对齐标签的方式提供默认值。返回Qt::Alignment 枚举值。 |
QStyle::SH_ItemView_ArrowKeysNavigateIntoChildren | 79 | 控制树视图在展开状态下按下右箭头键时是否选中第一个子节点。 |
QStyle::SH_ComboBox_PopupFrameStyle | 69 | 绘制组合框弹出菜单时使用的边框样式。 |
QStyle::SH_DialogButtonBox_ButtonsHaveIcons | 71 | 指示QDialogButtonBox 中的StandardButtons是否应带有图标。 |
QStyle::SH_ItemView_MovementWithoutUpdatingSelection | 74 | 项目视图能够在不改变选中状态的情况下标识当前项目。 |
QStyle::SH_ToolTip_Mask | 75 | 工具提示的遮罩。 |
QStyle::SH_FocusFrame_AboveWidget | 76 | FocusFrame 位于其“聚焦”的小部件之上。 |
QStyle::SH_TextControl_FocusIndicatorTextCharFormat | 77 | 指定用于突出显示富文本文档(例如在QTextBrowser 中显示)中获得焦点的锚点的文本格式。该格式必须是QTextCharFormat ,以QStyleHintReturnVariant 返回值的变体形式返回。QTextFormat::OutlinePen 属性用于突出显示区域的轮廓,QTextFormat::BackgroundBrush 属性用于突出显示区域的背景。 |
QStyle::SH_Menu_FlashTriggeredItem | 81 | Flash 触发的项目。 |
QStyle::SH_Menu_FadeOutOnHide | 82 | 让菜单淡出,而不是立即隐藏。 |
QStyle::SH_TabWidget_DefaultTabPosition | 86 | 标签控件中标签栏的默认位置。 |
QStyle::SH_ToolBar_Movable | 87 | 确定工具栏默认是否可移动。 |
QStyle::SH_ItemView_PaintAlternatingRowColorsForEmptyArea | 84 | QTreeView 是否为没有项目的区域绘制交替行颜色。 |
QStyle::SH_Menu_Mask | 80 | 弹出菜单的遮罩。 |
QStyle::SH_ItemView_DrawDelegateFrame | 91 | 确定委托控件是否应具有边框。 |
QStyle::SH_TabBar_CloseButtonPosition | 92 | 确定标签栏中某个标签上的关闭按钮的位置。 |
QStyle::SH_DockWidget_ButtonsHaveFrame | 93 | 确定停靠控件(dockwidget)的按钮是否应显示边框。默认值为 true。 |
QStyle::SH_ToolButtonStyle | 94 | 确定使用 `Qt::ToolButtonFollowStyle` 的工具按钮的默认系统样式。 |
QStyle::SH_RequestSoftwareInputPanel | 95 | 确定输入控件何时应请求软件输入面板。返回类型为QStyle::RequestSoftwareInputPanel 的枚举。 |
QStyle::SH_ScrollBar_Transient | 96 | 确定该样式是否支持临时滚动条。临时滚动条会在内容滚动时出现,并在不再需要时消失。 |
QStyle::SH_Menu_SupportsSections | 97 | 确定该样式是将菜单中的部分显示为独立板块,还是将其视为普通分隔符。部分是指带有文本和图标提示的分隔符。 |
QStyle::SH_ToolTip_WakeUpDelay | 98 | 确定显示工具提示前的延迟时间(以毫秒为单位)。 |
QStyle::SH_ToolTip_FallAsleepDelay | 99 | 确定在显示工具提示时(注意:是“显示”,而非“隐藏”),需要新的唤醒时间之前所需的延迟(以毫秒为单位)。当不需要新的唤醒时,用户请求的工具提示将几乎立即显示。 |
QStyle::SH_Widget_Animate | 100 | 已弃用。请改用 SH_Widget_Animation_Duration。 |
QStyle::SH_Splitter_OpaqueResize | 101 | 用于确定在交互式移动分隔条时,小部件是否会动态(不透明地)调整大小。该枚举值自 Qt 5.2 起引入。 |
QStyle::SH_TabBar_ChangeCurrentDelay | 104 | 确定在拖动标签栏时,当前标签切换前的延迟时间(以毫秒为单位)。该枚举值自 Qt 5.4 起引入。 |
QStyle::SH_ItemView_ScrollMode | 111 | 由样式指定的默认垂直和水平滚动模式。可通过QAbstractItemView::setVerticalScrollMode() 和QAbstractItemView::setHorizontalScrollMode() 进行覆盖。该枚举值自 Qt 5.7 起引入。 |
QStyle::SH_TitleBar_ShowToolTipsOnButtons | 112 | 确定是否在窗口标题栏按钮上显示工具提示。例如,Mac 样式将此值设置为 false。该枚举值自 Qt 5.10 起引入。 |
QStyle::SH_Widget_Animation_Duration | 113 | 确定动画的持续时间(以毫秒为单位)。值为零表示禁用动画。该枚举值自 Qt 5.10 起引入。 |
QStyle::SH_ComboBox_AllowWheelScrolling | 114 | 确定是否允许使用鼠标滚轮在QComboBox 内滚动。除Mac样式外,所有样式中此功能默认开启。该枚举值自Qt 5.10起引入。 |
QStyle::SH_SpinBox_ButtonsInsideFrame | 115 | 确定旋转框的按钮是否位于行编辑框内。该枚举值自 Qt 5.11 起引入。 |
QStyle::SH_SpinBox_StepModifier | 116 | 确定哪个Qt::KeyboardModifier 会提高QAbstractSpinBox 的步进速率。可能的值包括Qt::NoModifier 、Qt::ControlModifier (默认)或Qt::ShiftModifier 。Qt::NoModifier 将禁用此功能。该枚举值自Qt 5.12起引入。 |
QStyle::SH_TabBar_AllowWheelScrolling | 117 | 确定是否可以使用鼠标滚轮在QTabBar 的选项卡之间循环切换。该枚举值自 Qt 6.1 起引入。 |
QStyle::SH_Table_AlwaysDrawLeftTopGridLines | 118 | 确定在表头隐藏时,表格中是否绘制最左侧和顶部的网格线。默认值为 false。该枚举值自 Qt 6.3 起引入。 |
另请参阅 styleHint()。
enum QStyle::SubControl
flags QStyle::SubControls
此枚举描述了可用的子控件。子控件是指位于复杂控件(ComplexControl )内部的控件元素。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::SC_None | 0x00000000 | 一个不匹配任何其他子控件的特殊值。 |
QStyle::SC_ScrollBarAddLine | 0x00000001 | 滚动条添加行(即向下/向右箭头);另请参见QScrollBar 。 |
QStyle::SC_ScrollBarSubLine | 0x00000002 | 滚动条“加行”(即向下/向右箭头)。 |
QStyle::SC_ScrollBarAddPage | 0x00000004 | 滚动条添加页面(即“页面向下”)。 |
QStyle::SC_ScrollBarSubPage | 0x00000008 | 滚动条减页(即,Page Up)。 |
QStyle::SC_ScrollBarFirst | 0x00000010 | 滚动条第一行(即“首页”)。 |
QStyle::SC_ScrollBarLast | 0x00000020 | 滚动条末行(即“end”)。 |
QStyle::SC_ScrollBarSlider | 0x00000040 | 滚动条滑块手柄。 |
QStyle::SC_ScrollBarGroove | 0x00000080 | 包含滑块手柄可移动区域的特殊子控件。 |
QStyle::SC_SpinBoxUp | 0x00000001 | 旋转控件向上/增加;另请参阅QSpinBox 。 |
QStyle::SC_SpinBoxDown | 0x00000002 | 旋转控件向下/减小。 |
QStyle::SC_SpinBoxFrame | 0x00000004 | 旋转控件框架。 |
QStyle::SC_SpinBoxEditField | 0x00000008 | 旋转控件编辑字段。 |
QStyle::SC_ComboBoxEditField | 0x00000002 | 下拉列表编辑字段;另请参阅QComboBox 。 |
QStyle::SC_ComboBoxArrow | 0x00000004 | 下拉列表的箭头按钮。 |
QStyle::SC_ComboBoxFrame | 0x00000001 | 下拉列表框边框。 |
QStyle::SC_ComboBoxListBoxPopup | 0x00000008 | 下拉列表弹出窗口的参考矩形。用于计算弹出窗口的位置。 |
QStyle::SC_SliderGroove | 0x00000001 | 一种特殊的子控件,其中包含滑块手柄可移动的区域。 |
QStyle::SC_SliderHandle | 0x00000002 | 滑块手柄。 |
QStyle::SC_SliderTickmarks | 0x00000004 | 滑块刻度。 |
QStyle::SC_ToolButton | 0x00000001 | 工具按钮(另见QToolButton )。 |
QStyle::SC_ToolButtonMenu | 0x00000002 | 用于在工具按钮中打开弹出菜单的子控件。 |
QStyle::SC_TitleBarSysMenu | 0x00000001 | 系统菜单按钮(即“还原”、“关闭”等)。 |
QStyle::SC_TitleBarMinButton | 0x00000002 | 最小化按钮。 |
QStyle::SC_TitleBarMaxButton | 0x00000004 | 最大化按钮。 |
QStyle::SC_TitleBarCloseButton | 0x00000008 | 关闭按钮。 |
QStyle::SC_TitleBarLabel | 0x00000100 | 窗口标题标签。 |
QStyle::SC_TitleBarNormalButton | 0x00000010 | 正常(恢复)按钮。 |
QStyle::SC_TitleBarShadeButton | 0x00000020 | 遮蔽按钮。 |
QStyle::SC_TitleBarUnshadeButton | 0x00000040 | 取消折叠按钮。 |
QStyle::SC_TitleBarContextHelpButton | 0x00000080 | 上下文帮助按钮。 |
QStyle::SC_DialHandle | 0x00000002 | 旋钮的把手(即用于控制旋钮的部分)。 |
QStyle::SC_DialGroove | 0x00000001 | 刻度盘的凹槽。 |
QStyle::SC_DialTickmarks | 0x00000004 | 旋钮上的刻度。 |
QStyle::SC_GroupBoxFrame | 0x00000008 | 组框的边框。 |
QStyle::SC_GroupBoxLabel | 0x00000002 | 组框的标题。 |
QStyle::SC_GroupBoxCheckBox | 0x00000001 | 组框的可选复选框。 |
QStyle::SC_GroupBoxContents | 0x00000004 | 组框的内容。 |
QStyle::SC_MdiNormalButton | 0x00000002 | 菜单栏中 MDI 子窗口的普通按钮。 |
QStyle::SC_MdiMinButton | 0x00000001 | 菜单栏中 MDI 子窗口的最小化按钮。 |
QStyle::SC_MdiCloseButton | 0x00000004 | 菜单栏中 MDI 子窗口的关闭按钮。 |
QStyle::SC_All | 0xffffffff | 匹配所有子控件的特殊值。 |
SubControls 类型是QFlags<SubControl> 的 typedef。它存储 SubControl 值的或(OR)组合。
另请参阅 ComplexControl 。
enum QStyle::SubElement
此枚举表示控件的一个子区域。样式实现利用这些区域来绘制控件的不同部分。
| 常量 | 值 | 描述 |
|---|---|---|
QStyle::SE_PushButtonContents | 0 | 包含标签(带文本的图标或位图)的区域。 |
QStyle::SE_PushButtonFocusRect | 1 | 用于焦点矩形的区域(通常比内容矩形大)。 |
QStyle::SE_PushButtonLayoutItem | 37 | 计入父级布局的区域。 |
QStyle::SE_PushButtonBevel (since Qt 5.15) | 56 | 用于按钮斜角的区域。 |
QStyle::SE_CheckBoxIndicator | 2 | 用于状态指示器(例如,复选标记)的区域。 |
QStyle::SE_CheckBoxContents | 3 | 用于标签(文本或位图)的区域。 |
QStyle::SE_CheckBoxFocusRect | 4 | 焦点指示器的区域。 |
QStyle::SE_CheckBoxClickRect | 5 | 可点击区域,默认为 SE_CheckBoxFocusRect。 |
QStyle::SE_CheckBoxLayoutItem | 32 | 计入父布局的区域。 |
QStyle::SE_DateTimeEditLayoutItem | 34 | 计入父布局的区域。 |
QStyle::SE_RadioButtonIndicator | 6 | 状态指示器的区域。 |
QStyle::SE_RadioButtonContents | 7 | 标签的区域。 |
QStyle::SE_RadioButtonFocusRect | 8 | 焦点指示器的区域。 |
QStyle::SE_RadioButtonClickRect | 9 | 可点击区域,默认值为 SE_RadioButtonFocusRect。 |
QStyle::SE_RadioButtonLayoutItem | 38 | 计入父布局的区域。 |
QStyle::SE_ComboBoxFocusRect | 10 | 焦点指示器的区域。 |
QStyle::SE_SliderFocusRect | 11 | 焦点指示器的区域。 |
QStyle::SE_SliderLayoutItem | 39 | 计入父布局的区域。 |
QStyle::SE_SpinBoxLayoutItem | 40 | 计入父布局的区域。 |
QStyle::SE_ProgressBarGroove | 12 | 凹槽区域。 |
QStyle::SE_ProgressBarContents | 13 | 进度指示器的区域。 |
QStyle::SE_ProgressBarLabel | 14 | 文本标签的区域。 |
QStyle::SE_ProgressBarLayoutItem | 36 | 计入父布局的区域。 |
QStyle::SE_FrameContents | 27 | 用于框架内容的区域。 |
QStyle::SE_ShapedFrameContents | 51 | 使用QStyleOptionFrame 中形状的帧内容区域;参见QFrame |
QStyle::SE_FrameLayoutItem | 42 | 计入父布局的区域。 |
QStyle::SE_HeaderArrow | 17 | 用于页眉排序指示符的区域。 |
QStyle::SE_HeaderLabel | 16 | 页眉中标签的区域。 |
QStyle::SE_LabelLayoutItem | 35 | 计入父级布局的区域。 |
QStyle::SE_LineEditContents | 26 | 行编辑控件内容的区域。 |
QStyle::SE_TabWidgetLeftCorner | 21 | 用于标签页控件中左上角控件的区域。 |
QStyle::SE_TabWidgetRightCorner | 22 | 用于标签控件中右角小部件的区域。 |
QStyle::SE_TabWidgetTabBar | 18 | 选项卡控件中用于选项卡栏控件的区域。 |
QStyle::SE_TabWidgetTabContents | 20 | 用于标签控件内容的区域。 |
QStyle::SE_TabWidgetTabPane | 19 | 用于标签控件中窗格的区域。 |
QStyle::SE_TabWidgetLayoutItem | 44 | 计入父级布局的区域。 |
QStyle::SE_ToolBoxTabContents | 15 | 工具箱选项卡的图标和标签所占的区域。 |
QStyle::SE_ToolButtonLayoutItem | 41 | 计入父布局的区域。 |
QStyle::SE_ItemViewItemCheckIndicator | 23 | 视图项的复选标记所占的区域。 |
QStyle::SE_TabBarTearIndicator | 24 | 已弃用。请改用 SE_TabBarTearIndicatorLeft。 |
QStyle::SE_TabBarTearIndicatorLeft | SE_TabBarTearIndicator | 用于带有滚动箭头的选项卡栏左侧撕裂指示器的区域。 |
QStyle::SE_TabBarTearIndicatorRight | 55 | 带有滚动箭头的标签栏右侧的撕裂指示器区域。 |
QStyle::SE_TabBarScrollLeftButton | 53 | 带有滚动按钮的标签栏中,用于“向左滚动”按钮的区域。 |
QStyle::SE_TabBarScrollRightButton | 54 | 带有滚动按钮的选项卡栏上“向左滚动”按钮的区域。 |
QStyle::SE_TreeViewDisclosureItem | 25 | 树分支中实际展开项的区域。 |
QStyle::SE_GroupBoxLayoutItem | 43 | 计入父级布局的区域。 |
QStyle::SE_CustomBase | 0xf0000000 | 自定义子元素的基准值。自定义值必须大于此值。 |
QStyle::SE_DockWidgetFloatButton | 29 | 停靠控件的浮动按钮。 |
QStyle::SE_DockWidgetTitleBarText | 30 | 停靠控件标题的文本边界。 |
QStyle::SE_DockWidgetCloseButton | 28 | 停靠控件的关闭按钮。 |
QStyle::SE_DockWidgetIcon | 31 | 停靠控件的图标。 |
QStyle::SE_ComboBoxLayoutItem | 33 | 计入父布局的区域。 |
QStyle::SE_ItemViewItemDecoration | 45 | 视图项装饰(图标)的区域。 |
QStyle::SE_ItemViewItemText | 46 | 用于视图项文本的区域。 |
QStyle::SE_ItemViewItemFocusRect | 47 | 用于视图项焦点矩形的区域。 |
QStyle::SE_TabBarTabLeftButton | 48 | 用于标签栏中标签左侧的小部件的区域。 |
QStyle::SE_TabBarTabRightButton | 49 | 标签栏中标签右侧小部件的区域。 |
QStyle::SE_TabBarTabText | 50 | 用于标签栏中标签上文本的区域。 |
QStyle::SE_ToolBarHandle | 52 | 工具栏控件手柄的区域。 |
另请参阅 subElementRect()。
成员函数文档
QStyle::QStyle()
创建一个样式对象。
[virtual noexcept] QStyle::~QStyle()
销毁样式对象。
[static] QRect QStyle::alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)
返回一个新的矩形,其size 属性为指定值,并根据指定的alignment 和direction ,与给定的rectangle 对齐。
int QStyle::combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, QStyleOption *option = nullptr, QWidget *widget = nullptr) const
返回在布局中controls1 和controls2 之间应使用的间距。orientation 指定控件是并排布局还是垂直堆叠。option 参数可用于传递有关父控件的额外信息。widget 参数是可选的,当option 为nullptr 时也可使用该参数。
controls1 且 `controls2 ` 是零个或多个 `control types` 的“或”组合。
该函数由布局系统调用。仅当PM_LayoutHorizontalSpacing 或PM_LayoutVerticalSpacing 返回负值时才会使用。
另请参阅 layoutSpacing()。
[pure virtual] void QStyle::drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const
使用提供的painter ,并根据option 中指定的样式选项,绘制给定的control 。
widget 参数是可选的,可用于辅助绘制该控件。
option 参数是一个指向QStyleOptionComplex 对象的指针,该对象可通过qstyleoption_cast()函数转换为正确的子类。请注意,指定option 的rect 成员必须为逻辑坐标。此函数的重写版本应在调用drawPrimitive()或drawControl()函数之前,使用visualRect()将逻辑坐标转换为屏幕坐标。
下表列出了复合控件及其关联的样式选项子类。样式选项包含绘制控件所需的所有参数,包括QStyleOption::state ,该参数包含绘制时使用的style flags 。该表还描述了将给定的option 转换为相应子类时设置的标志。
| 复杂控件 | QStyleOptionComplex 子类 | 样式标志 | 备注 |
|---|---|---|---|
| CC_SpinBox | QStyleOptionSpinBox | State_Enabled | 如果旋转框已启用,则设置此标志。 |
| State_HasFocus | 如果旋转框具有输入焦点,则设置此标志。 | ||
| CC_ComboBox | QStyleOptionComboBox | State_Enabled | 如果下拉列表已启用,则设置此标志。 |
| State_HasFocus | 如果下拉列表具有输入焦点,则设置此标志。 | ||
| CC_ScrollBar | QStyleOptionSlider | State_Enabled | 若滚动条已启用,则设置此属性。 |
| State_HasFocus | 如果滚动条具有输入焦点,则设置此属性。 | ||
| CC_Slider | QStyleOptionSlider | State_Enabled | 设置滑块是否已启用。 |
| State_HasFocus | 设置滑块是否具有输入焦点。 | ||
| CC_Dial | QStyleOptionSlider | State_Enabled | 设置旋钮是否已启用。 |
| State_HasFocus | 设置拨盘是否具有输入焦点。 | ||
| CC_ToolButton | QStyleOptionToolButton | State_Enabled | 设置工具按钮是否已启用。 |
| State_HasFocus | 如果工具按钮具有输入焦点,则设置此属性。 | ||
| State_DownArrow | 如果工具按钮被按下(即鼠标按钮或空格键被按下),则设置此属性。 | ||
| State_On | 如果工具按钮是切换按钮且处于开启状态,则设置此属性。 | ||
| State_AutoRaise | 如果工具按钮启用了自动提升功能,则设置此属性。 | ||
| State_Raised | 当“自动提升”功能启用时,如果按钮未被按下、未处于开启状态,且鼠标未位于该按钮上,则设置此属性。 | ||
| CC_TitleBar | QStyleOptionTitleBar | State_Enabled | 设置标题栏是否已启用。 |
另请参阅 drawPrimitive() 和drawControl()。
[pure virtual] void QStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
使用提供的painter 绘制给定的element ,并采用由option 指定的样式选项。
widget 参数是可选的,可用于辅助控件的绘制。option 参数是一个指向QStyleOption 对象的指针,可通过qstyleoption_cast()函数将其强制转换为正确的子类。
下表列出了控件元素及其关联的样式选项子类。样式选项包含绘制控件所需的所有参数,包括QStyleOption::state ,它存储了绘制时使用的样式标志。该表还说明了将给定选项转换为相应子类时会设置哪些标志。
请注意,如果某个控件未在此处列出,那是因为它使用的是普通的QStyleOption 对象。
另请参阅 drawPrimitive() 和drawComplexControl()。
[virtual] void QStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const
根据指定的alignment ,使用提供的painter ,在指定的rectangle 中绘制给定的pixmap 。
另请参阅 drawItemText()。
[virtual] void QStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const
使用提供的painter 和palette ,在指定的rectangle 中绘制给定的text 。
文本使用绘图器的画笔绘制,并根据指定的alignment 进行对齐和换行。如果显式指定了textRole ,则文本将使用palette 中为给定角色设定的颜色进行绘制。enabled 参数指示该项是否启用;在重写此函数时,enabled 参数应影响该项的绘制方式。
另请参阅 Qt::Alignment 和drawItemPixmap()。
[pure virtual] void QStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
使用由option 指定的样式选项,通过提供的painter 绘制给定的基元element 。
widget 参数是可选的,其中可能包含一个有助于绘制基元元素的小部件。
下表列出了基本元素及其关联的样式选项子类。样式选项包含绘制元素所需的所有参数,包括QStyleOption::state ——该参数保存绘制时使用的样式标志。该表还描述了将给定选项转换为相应子类时会设置哪些标志。
请注意,如果某个基本元素未在此处列出,那是因为它使用了一个普通的 `QStyleOption ` 对象。
另请参阅 drawComplexControl() 和drawControl()。
[pure virtual] QPixmap QStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const
返回给定pixmap 的副本,其样式将按照指定的iconMode 进行调整,并考虑由option 指定的配色方案。
option 参数可以传递额外信息,但必须包含调色板。
请注意,并非所有像素图都能符合要求,在这种情况下,返回的像素图将是一个普通的副本。
另请参阅 QIcon 。
[pure virtual] QStyle::SubControl QStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const
返回位于指定position 处的子控件,并将其设置为指定的复合control (样式选项由option 指定)。
请注意,position 以屏幕坐标表示。
option 参数是一个指向QStyleOptionComplex 对象(或其子类之一)的指针。该对象可使用qstyleoption_cast()函数转换为适当的类型。详情请参阅drawComplexControl()。widget 参数是可选的,可包含该函数的附加信息。
另请参阅 drawComplexControl() 和subControlRect()。
[virtual] QRect QStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
返回给定rectangle 内的区域,该区域将根据定义的alignment ,绘制指定的pixmap 。
[virtual] QRect QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const
返回给定rectangle 内的区域,用于根据指定的字体metrics 和alignment 绘制提供的text 。enabled 参数用于指示相关项是否已启用。
如果给定的rectangle 大于渲染text 所需的区域,则返回的矩形将在rectangle 内根据指定的alignment 进行偏移。例如,如果alignment 为Qt::AlignCenter ,则返回的矩形将居中于rectangle 内。如果给定的rectangle 小于所需区域,则返回的矩形将是足以渲染text 的最小矩形。
另请参阅 Qt::Alignment 。
[pure virtual] int QStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
返回在布局中control1 和control2 之间应使用的间距。orientation 指定控件是并排布局还是垂直堆叠。option 参数可用于传递有关父控件的额外信息。widget 参数是可选的,当option 的值为nullptr 时也可使用该参数。
此函数由布局系统调用。仅当PM_LayoutHorizontalSpacing 或PM_LayoutVerticalSpacing 返回负值时才会使用该函数。
另请参阅 combinedLayoutSpacing()。
[since 6.1] QString QStyle::name() const
返回样式的名称。
该值可用于通过 `QStyleFactory::create()` 创建样式。
该函数在 Qt 6.1 中引入。
另请参阅 QStyleFactory::create()。
[pure virtual] int QStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
返回给定像素的值metric 。
指定的option 和widget 可用于计算度量值。option 可通过qstyleoption_cast()函数转换为适当的类型。请注意,即使对于能够使用option 的PixelMetrics,该值也可能为零。请参阅下表了解相应的option 类型转换:
某些像素度量由小部件调用,而有些仅由样式在内部调用。如果该度量未被小部件调用,则是否使用该度量由样式作者自行决定。对于某些样式而言,这可能并不合适。
[virtual] void QStyle::polish(QWidget *widget)
初始化给定widget 的外观。
该函数会在每个小部件完全创建完成之后、但首次显示之前某个时刻被调用。
请注意,默认实现不执行任何操作。在此函数中合理的操作可能是为该小部件调用 QWidget::setBackgroundMode() 函数。 请勿使用该函数来设置几何属性等。重写此函数会提供一个后门,通过它可以更改小部件的外观,但在 Qt 的样式引擎中,很少有必要实现此函数;请改重写drawItemPixmap()、drawItemText()、drawPrimitive() 等函数。
QWidget::inherits() 函数可能提供足够的信息,以支持针对特定类的自定义。但由于期望新的QStyle 子类能够与所有当前和未来的控件合理兼容,因此建议限制使用硬编码的自定义。
另请参阅 unpolish()。
[virtual] void QStyle::polish(QApplication *application)
给定的application 对象初始化过晚。
这是一个重载函数。
[virtual] void QStyle::polish(QPalette &palette)
根据配色方案的特定样式要求(如有)修改palette 。
这是一个重载函数。
另请参阅 QPalette 和QApplication::setPalette()。
const QStyle *QStyle::proxy() const
该函数返回此样式当前的代理。默认情况下,大多数样式会返回其自身。但是,当使用代理样式时,该样式将能够回调其代理。
[pure virtual] QSize QStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const
根据提供的contentsSize ,返回由指定的option 和type 所描述的元素的大小。
option 参数是QStyleOption 或其子类的指针。option 可以使用qstyleoption_cast() 函数转换为相应的类型。widget 是可选参数,其中可能包含用于计算大小的额外信息。
请参阅下表了解相应的option 类型转换:
另请参阅 ContentsType 和QStyleOption 。
[static] int QStyle::sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false)
将给定的logicalValue 转换为像素位置。min 参数映射到0,max 映射到span ,其余值则在两者之间均匀分布。
只要span 小于4096,该函数即可处理整个整数范围而不会发生溢出。
默认情况下,该函数假设水平项的最大值位于右侧,垂直项的最大值位于底部。将upsideDown 参数设置为 true 可反转此行为。
另请参阅 sliderValueFromPosition()。
[static] int QStyle::sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false)
将给定的像素值position 转换为逻辑值。0映射到min 参数,span 映射到max ,其余值则均匀分布于两者之间。
该函数可处理整个整数范围,且不会发生溢出。
默认情况下,该函数假设水平元素的最大值位于右侧,垂直元素的最大值位于底部。将upsideDown 参数设置为 true 可反转此行为。
另请参阅 sliderPositionFromValue()。
[pure virtual] QIcon QStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
返回给定standardIcon 的图标。
standardIcon 是一个标准位图,可遵循某些现有的 GUI 样式或规范。option 参数可用于传递定义相应图标时所需的额外信息。widget 参数是可选的,也可用于辅助确定图标。
[virtual] QPalette QStyle::standardPalette() const
返回该样式的标准调色板。
请注意,在支持系统颜色的系统上,不会使用该样式的标准调色板。特别是,Windows Vista 和 Mac 样式不使用标准调色板,而是利用原生主题引擎。对于这些样式,不应使用 `QApplication::setPalette()` 设置调色板。
另请参阅 QApplication::setPalette()。
[pure virtual] int QStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const
返回一个整数,该整数表示针对给定的widget (由提供的样式option 描述)所对应的指定样式hint 。
returnData 当查询控件需要比 styleHint() 返回的整数值更详细的数据时,应使用此方法。详情请参阅QStyleHintReturn 类的说明。
[pure virtual] QRect QStyle::subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const
返回包含给定复数control (其样式由option 指定)中指定subControl 的矩形。该矩形以屏幕坐标定义。
option 参数是QStyleOptionComplex 或其子类的指针,可使用qstyleoption_cast() 函数将其强制转换为相应类型。详情请参阅drawComplexControl()。widget 是可选的,可包含该函数的附加信息。
另请参阅 drawComplexControl()。
[pure virtual] QRect QStyle::subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const
返回给定element 的子区域,该子区域符合提供的样式option 中的描述。返回的矩形以屏幕坐标定义。
widget 参数是可选的,可用于辅助确定该区域。QStyleOption 对象可通过qstyleoption_cast()函数转换为相应类型。请参阅下表了解相应的option 类型转换:
[virtual] void QStyle::unpolish(QWidget *widget)
取消初始化给定的widget 的外观。
该函数是 `polish()` 的对应函数。每当样式发生动态变化时,对于每个已应用样式的小部件都会调用此函数;旧样式必须先重置其设置,新样式才能再次对其应用样式。
请注意,unpolish() 仅在小部件被销毁时才会被调用。在某些情况下这可能会导致问题,例如,如果您将小部件从用户界面中移除、将其缓存,然后在样式发生变化后将其重新插入;Qt Widgets 中的某些类会缓存其小部件。
另请参阅 polish()。
[virtual] void QStyle::unpolish(QApplication *application)
取消对给定的application 的初始化。
这是一个重载函数。
[static] Qt::Alignment QStyle::visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)
将一个alignment (其属性为Qt::AlignLeft 或Qt::AlignRight ,且不包含Qt::AlignAbsolute )转换为Qt::AlignLeft 或Qt::AlignRight ,并设置Qt::AlignAbsolute ,同时遵循布局direction 。其他对齐标志保持不变。
如果未指定水平对齐方式,该函数将返回给定布局的默认对齐方式:direction 。
[static] QPoint QStyle::visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition)
返回根据指定的direction 将给定的logicalPosition 转换为屏幕坐标后的结果。在执行平移操作时会使用boundingRectangle 。
另请参阅 QWidget::layoutDirection 。
[static] QRect QStyle::visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle)
返回将给定的logicalRectangle 转换为屏幕坐标的坐标,转换基于指定的direction 。在执行平移操作时会使用boundingRectangle 。
提供此函数是为了支持从右向左的桌面环境,通常用于实现subControlRect()函数。
另请参阅 QWidget::layoutDirection 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.





