- Qt 6.9
- Qt Labs Platform
- QML Types
- MenuItem
- Qt 6.9.2 Reference Documentation

# MenuItem QML Type

A native menu item. More...

Import Statement: | `import Qt.labs.platform`
Inherits: | QtObject
Inherited By: | MenuSeparator

- List of all members, including inherited members

## Properties

- checkable : bool
- checked : bool
- enabled : bool
- font : font
- group : MenuItemGroup
- icon `(since Qt.labs.platform 1.1 (Qt 5.12))`
  - 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))`
- menu : Menu
- role : enumeration
- separator : bool
- shortcut : keysequence
- subMenu : Menu
- text : string
- visible : bool

## Signals

- hovered()
- triggered()

## Methods

- void toggle()

## Detailed Description

The MenuItem type provides a QML API for native platform menu items.

A menu item consists of an icon, text, and shortcut.

     Menu {
         id: zoomMenu

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

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

Note: Types in Qt.labs modules are not guaranteed to remain compatible in future versions.

See also Menu and MenuItemGroup.

## Property Documentation

checkable : bool

This property holds whether the item is checkable.

A checkable menu item has an on/off state. For example, in a word processor, a "Bold" menu item may be either on or off. A menu item that is not checkable is a command item that is simply executed, e.g. file save.

The default value is `false`.

See also checked and MenuItemGroup.

checked : bool

This property holds whether the item is checked (on) or unchecked (off). The default value is `false`.

See also checkable and MenuItemGroup.

enabled : bool

This property holds whether the item is enabled. The default value is `true`.

Disabled items cannot be triggered by the user. They do not disappear from menus, but they are displayed in a way which indicates that they are unavailable. For example, they might be displayed using only shades of gray.

When an item is disabled, it is not possible to trigger it through its shortcut.

font : font

This property holds the menu item's font.

See also text.

group : MenuItemGroup

This property holds the group that the item belongs to, or `null` if the item is not in a group.

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)]`

This property holds the menu item's icon.

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

This QML property was introduced in Qt.labs.platform 1.1 (Qt 5.12).

See also QIcon::fromTheme().

menu : Menu `[read-only]`

This property holds the menu that the item belongs to, or `null` if the item is not in a menu.

role : enumeration

This property holds the role of the item. The role determines whether the item should be placed into the application menu on macOS.

Available values:

Constant | Description
--- | ---
`MenuItem.NoRole` | The item should not be put into the application menu
`MenuItem.TextHeuristicRole` | The item should be put in the application menu based on the action's text (default)
`MenuItem.ApplicationSpecificRole` | The item should be put in the application menu with an application-specific role
`MenuItem.AboutQtRole` | The item handles the "About Qt" menu item.
`MenuItem.AboutRole` | The item should be placed where the "About" menu item is in the application menu. The text of the menu item will be set to "About <application name>". The application name is fetched from the `Info.plist` file in the application's bundle (See Qt for macOS - Deployment).
`MenuItem.PreferencesRole` | The item should be placed where the "Preferences..." menu item is in the application menu.
`MenuItem.QuitRole` | The item should be placed where the Quit menu item is in the application menu.

Specifying the role only has effect on items that are in the immediate menus of a menubar, not in the submenus of those menus. For example, if you have a "File" menu in your menubar and the "File" menu has a submenu, specifying a role for the items in that submenu has no effect. They will never be moved to the application menu.

separator : bool

This property holds whether the item is a separator line. The default value is `false`.

See also MenuSeparator.

shortcut : keysequence

This property holds the menu item's shortcut.

The shortcut key sequence can be set to one of the standard keyboard shortcuts, or it can be specified by a string containing a sequence of up to four key presses that are needed to trigger the shortcut.

The default value is an empty key sequence.

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

subMenu : Menu `[read-only]`

This property holds the sub-menu that the item contains, or `null` if the item is not a sub-menu item.

text : string

This property holds the menu item's text.

visible : bool

This property holds whether the item is visible. The default value is `true`.

## Signal Documentation

hovered()

This signal is emitted when the menu item is hovered by the user.

Note: The corresponding handler is `onHovered`.

triggered()

This signal is emitted when the menu item is triggered by the user.

Note: The corresponding handler is `onTriggered`.

## Method Documentation

void toggle()

Toggles the checked state to its opposite state.