本页内容

MenuItem QML Type

一个原生菜单项。更多...

Import Statement: import Qt.labs.platform
Inherits:

QtObject

Inherited By:

MenuSeparator

属性

信号

方法

详细说明

MenuItem 类型为原生平台的菜单项提供了 QML API。

包含“放大”和“缩小”选项的原生菜单

一个菜单项由icon 、text 和shortcut 组成。

Menu {
    id: zoomMenu

    MenuItem {
        text: qsTr("Zoom In")
        shortcut: StandardKey.ZoomIn
        onTriggered: zoomIn()
    }

    MenuItem {
        text: qsTr("Zoom Out")
        shortcut: StandardKey.ZoomOut
        onTriggered: zoomOut()
    }
}

注意: Qt.labs 模块中的类型在未来版本中不保证保持兼容性。

另请参阅 Menu 和MenuItemGroup 。

属性文档

checkable : bool

该属性用于指定该项目是否可选中。

可选中的菜单项具有“开启”或“关闭”状态。例如,在文字处理软件中,“加粗”菜单项可以处于开启或关闭状态。不可选中的菜单项则是仅被执行的命令项,例如“文件”菜单中的“保存”。

默认值为false 。

另请参阅 ` checked ` 和 `MenuItemGroup`。

checked : bool

无论该项是否被选中(开启)或未被选中(关闭),此属性均保持有效。默认值为false 。

另请参阅 checkable 和MenuItemGroup 。

enabled : bool

该属性用于指定该项目是否处于启用状态。默认值为true 。

禁用的项目无法由用户触发。它们不会从菜单中消失,但会以一种表明不可用的方式显示。例如,它们可能仅以不同深浅的灰色显示。

当项目处于禁用状态时,无法通过其shortcut 触发该项目。

font : font

该属性用于指定菜单项的字体。

另请参阅 text 。

group : MenuItemGroup

该属性存储该项目所属的组;如果该项目不属于任何组,则该属性值为null 。

icon group

icon.mask : bool [since Qt.labs.platform 1.1 (Qt 5.12)]

icon.name : string [since Qt.labs.platform 1.1 (Qt 5.12)]

icon.source : url [since Qt.labs.platform 1.1 (Qt 5.12)]

该属性存储菜单项的图标。

MenuItem {
    icon.mask: true
    icon.name: "edit-undo"
    icon.source: "qrc:/images/undo.png"
}

这些属性是在 Qt Labs Platform 1.1(Qt 5.12)中引入的。

另请参阅 ` QIcon::fromTheme()`。

该属性保存了该项目所属的菜单,如果该项目不属于任何菜单,则该属性值为null 。

role : enumeration

该属性用于指定项目的角色。该角色决定了该项目是否应被添加到 macOS 上的应用程序菜单中。

可用值:

常量描述
MenuItem.NoRole该项目不应放入应用程序菜单
MenuItem.TextHeuristicRole应根据操作的文本将该项目放入应用程序菜单(默认)
MenuItem.ApplicationSpecificRole该菜单项应以应用程序特有的角色形式放入应用程序菜单中
MenuItem.AboutQtRole该菜单项负责处理“关于 Qt”菜单项。
MenuItem.AboutRole该菜单项应放置在应用程序菜单中“关于”菜单项的位置。菜单项的文本将设置为“关于 <应用程序名称>”。应用程序名称从应用程序包中的Info.plist 文件中获取(参见Qt for macOS - 部署)。
MenuItem.PreferencesRole该菜单项应放置在应用程序菜单中“首选项...”菜单项的位置。
MenuItem.QuitRole该菜单项应放置在应用程序菜单中“退出”菜单项的位置。

指定角色仅对菜单栏中的直接菜单项生效,不适用于这些菜单的子菜单。 例如,如果您的菜单栏中有一个“文件”菜单,且该“文件”菜单有一个子菜单,那么为该子菜单中的项目指定角色将没有任何效果。这些项目将永远不会被移动到应用程序菜单中。

separator : bool

该属性用于指定该项目是否为分隔线。默认值为false 。

另请参阅 ` MenuSeparator`。

shortcut : keysequence

该属性存储菜单项的快捷键。

快捷键序列可以设置为standard keyboard shortcuts 中的任意一种,也可以通过一个字符串来指定,该字符串包含最多四个按键的序列,这些按键组合用于trigger 该快捷键。

默认值为空键序列。

MenuItem {
    shortcut: "Ctrl+E,Ctrl+W"
    onTriggered: edit.wrapMode = TextEdit.Wrap
}

该属性存储该项目所包含的子菜单;如果该项目不是子菜单项,则该属性值为null 。

text : string

该属性用于存储菜单项的文本。

visible : bool

该属性用于指定该项目是否可见。默认值为true 。

信号文档

hovered()

当用户将鼠标悬停在该菜单项上时,会触发此信号。

注意: 相应的处理程序 为onHovered 。

triggered()

当用户触发该菜单项时,会发出此信号。

注意: 相应的处理程序 为onTriggered 。

方法文档

void toggle()

将checked 的状态切换为相反的状态。

© 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.