QStyleOptionMenuItem Class
QStyleOptionMenuItem 类用于描述绘制菜单项所需的参数。更多内容...
| 头文件: | #include <QStyleOptionMenuItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QStyleOption |
| 被继承者: |
公共类型
| enum | CheckType { NotCheckable, Exclusive, NonExclusive } |
| enum | MenuItemType { Normal, DefaultItem, Separator, SubMenu, Scroller, …, EmptyArea } |
| enum | StyleOptionType { Type } |
| enum | StyleOptionVersion { Version } |
公共函数
| QStyleOptionMenuItem() | |
| QStyleOptionMenuItem(const QStyleOptionMenuItem &other) | |
| QStyleOptionMenuItem & | operator=(const QStyleOptionMenuItem &) |
公共变量
| QStyleOptionMenuItem::CheckType | checkType |
| bool | checked |
| QFont | font |
| QIcon | icon |
| int | maxIconWidth |
| bool | menuHasCheckableItems |
| QStyleOptionMenuItem::MenuItemType | menuItemType |
| QRect | menuRect |
| int | reservedShortcutWidth |
| QString | text |
详细说明
QStyleOptionMenuItem 包含QStyle 函数所需的所有信息,用于从QMenu 绘制菜单项。它还用于绘制其他与菜单相关的控件。
出于性能考虑,该结构体包含的成员函数较少,且可直接访问其成员变量(即使用. 或-> 运算符)。这使得该结构体的使用非常直观,同时也强调了这些仅是样式函数所使用的参数。
另请参阅 QStyleOption 。
成员类型文档
enum QStyleOptionMenuItem::CheckType
此枚举用于指示是否应为该项目绘制复选标记,甚至是否应绘制该标记。
| 常量 | 值 | 描述 |
|---|---|---|
QStyleOptionMenuItem::NotCheckable | 0 | 该项目不可选中。 |
QStyleOptionMenuItem::Exclusive | 1 | 该项目为互斥选中项(如单选按钮)。 |
QStyleOptionMenuItem::NonExclusive | 2 | 该项目是“非排他性”复选项目(如复选框)。 |
另请参阅 checkType 、QAction::checkable 、QAction::checked 以及QActionGroup::exclusionPolicy 。
enum QStyleOptionMenuItem::MenuItemType
此枚举表示该结构所描述的菜单项类型。
| 常量 | 值 | 描述 |
|---|---|---|
QStyleOptionMenuItem::Normal | 0 | 一个普通菜单项。 |
QStyleOptionMenuItem::DefaultItem | 1 | 一个被指定为默认操作的菜单项,由QMenu::defaultAction() 指定。 |
QStyleOptionMenuItem::Separator | 2 | 菜单分隔符。 |
QStyleOptionMenuItem::SubMenu | 3 | 表示该菜单项指向一个子菜单。 |
QStyleOptionMenuItem::Scroller | 4 | 弹出菜单滚动条(目前仅在 macOS 上使用)。 |
QStyleOptionMenuItem::TearOff | 5 | 菜单的撕下控点。 |
QStyleOptionMenuItem::Margin | 6 | 已弃用且不再使用。菜单的边距。 |
QStyleOptionMenuItem::EmptyArea | TearOff + 2 | 菜单的空白区域。 |
另请参阅 menuItemType 。
enum QStyleOptionMenuItem::StyleOptionType
该枚举用于存储样式选项类型的相关信息,并针对每个QStyleOption 子类分别定义。
| 常量 | 常量值 | 描述 |
|---|---|---|
QStyleOptionMenuItem::Type | SO_MenuItem | 提供的样式选项的类型(对于此类而言为SO_MenuItem )。 |
该类型由QStyleOption 、其子类以及qstyleoption_cast()在内部使用,用于确定样式选项的类型。通常情况下,除非您想创建自己的QStyleOption 子类和自己的样式,否则无需担心这一点。
另请参阅 StyleOptionVersion 。
enum QStyleOptionMenuItem::StyleOptionVersion
该枚举用于存储样式选项的版本信息,并针对每个QStyleOption 子类进行定义。
| 常量 | 常量值 | 描述 |
|---|---|---|
QStyleOptionMenuItem::Version | 1 | 1 |
QStyleOption 的子类使用该版本号来实现扩展,同时保持兼容性。如果您使用qstyleoption_cast(),通常无需检查该版本号。
另请参阅 StyleOptionType 。
成员函数文档
QStyleOptionMenuItem::QStyleOptionMenuItem()
创建一个 QStyleOptionMenuItem,并将成员变量初始化为默认值。
QStyleOptionMenuItem::QStyleOptionMenuItem(const QStyleOptionMenuItem &other)
创建other 样式选项的副本。
[noexcept default] QStyleOptionMenuItem &QStyleOptionMenuItem::operator=(const QStyleOptionMenuItem &)
将other 复制并赋值给此QStyleOptionMenuItem 实例。
成员变量文档
QStyleOptionMenuItem::CheckType QStyleOptionMenuItem::checkType
该变量存储菜单项的复选标记类型
默认值为NotCheckable 。
另请参阅 CheckType 。
bool QStyleOptionMenuItem::checked
该变量用于表示菜单项是否被选中
默认值为 false。
QFont QStyleOptionMenuItem::font
该变量存储用于菜单项文本的字体
这是绘制菜单文本(不含快捷键)时应使用的字体。快捷键通常使用绘图工具的字体进行绘制。默认情况下,使用应用程序的默认字体。
QIcon QStyleOptionMenuItem::icon
该变量存储菜单项的图标
其默认值是一个空图标,即既没有位图也没有文件名的图标。
int QStyleOptionMenuItem::maxIconWidth
该变量存储菜单项中图标的最大宽度
该变量可用于将图标绘制到正确位置或正确对齐菜单项。无论菜单项是否带有图标,都必须设置此变量。默认值为 0。
bool QStyleOptionMenuItem::menuHasCheckableItems
该变量用于表示整个菜单是否包含可选中项
默认值为 true。
如果将此选项设置为 false,则菜单中将不包含可选中的项目。这样可以使 GUI 样式节省通常用于选中列的水平空间。
QStyleOptionMenuItem::MenuItemType QStyleOptionMenuItem::menuItemType
该变量存储菜单项的类型
默认值为Normal 。
另请参阅 MenuItemType 。
QRect QStyleOptionMenuItem::menuRect
该变量存储了整个菜单的矩形
其默认值是一个空矩形,即宽度和高度均设为 0 的矩形。
int QStyleOptionMenuItem::reservedShortcutWidth
该变量保存了菜单项快捷方式的预留宽度
QMenu 将其设置为菜单中所有可见项目中宽度最大的快捷方式所占用的宽度。
默认值为 0。
QString QStyleOptionMenuItem::text
该变量用于存储菜单项的文本
请注意,文本格式应类似于“菜单文本\t快捷键”。
如果菜单项没有快捷键,则该变量仅包含菜单项的文本。默认值为空字符串。
© 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.