Menu QML Type
A native menu. More...
Import Statement: | import Qt.labs.platform 1.0 |
Since: | Qt 5.8 |
Inherits: |
Properties
- data : list<Object>
- enabled : bool
- font : font
- iconName : string
- iconSource : url
- items : list<MenuItem>
- menuBar : MenuBar
- menuItem : MenuItem
- minimumWidth : int
- parentMenu : Menu
- systemTrayIcon : SystemTrayIcon
- title : string
- type : enumeration
- visible : bool
Signals
- void aboutToHide()
- void aboutToShow()
Methods
- void addItem(MenuItem item)
- void addMenu(Menu submenu)
- void clear()
- void close()
- void insertItem(int index, MenuItem item)
- void insertMenu(int index, Menu submenu)
- void open(Item target, MenuItem item)
- void open(MenuItem item)
- void removeItem(MenuItem item)
- void removeMenu(Menu submenu)
Detailed Description
The Menu type provides a QML API for native platform menu popups.
Menu can be used in a MenuBar, or as a stand-alone context menu. The following example shows how to open a context menu on right mouse click:
MouseArea { anchors.fill: parent acceptedButtons: Qt.RightButton onClicked: zoomMenu.open() } Menu { id: zoomMenu MenuItem { text: qsTr("Zoom In") shortcut: StandardKey.ZoomIn onTriggered: zoomIn() } MenuItem { text: qsTr("Zoom Out") shortcut: StandardKey.ZoomOut onTriggered: zoomOut() } }
Availability
A native platform menu is currently available on the following platforms:
- macOS
- iOS
- Android
- Linux (only available as a stand-alone context menu when running with the GTK+ platform theme)
The Qt Labs Platform module uses Qt Widgets as a fallback on platforms that do not have a native implementation available. Therefore, applications that use types from the Qt Labs Platform module should link to QtWidgets and use QApplication instead of QGuiApplication.
To link against the QtWidgets library, add the following to your qmake project file:
QT += widgets
Create an instance of QApplication in main()
:
#include <QApplication> #include <QQmlApplicationEngine> int main(int argc, char *argv[]) { QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); }
Note: Types in Qt.labs modules are not guaranteed to remain compatible in future versions.
See also MenuItem, MenuSeparator, and MenuBar.
Property Documentation
This property holds the theme name of the menu's icon.
See also iconSource and QIcon::fromTheme().
items : list<MenuItem> |
This property holds the list of items in the menu.
[read-only] menuBar : MenuBar |
This property holds the menubar that the menu belongs to, or null
if the menu is not in a menubar.
[read-only] menuItem : MenuItem |
This property holds the item that presents the menu (in a parent menu).
This property holds the minimum width of the menu. The default value is -1
(no minimum width).
[read-only] parentMenu : Menu |
This property holds the parent menu that the menu belongs to, or null
if the menu is not a sub-menu.
[read-only] systemTrayIcon : SystemTrayIcon |
This property holds the system tray icon that the menu belongs to, or null
if the menu is not in a system tray icon.
This property holds the type of the menu.
Available values:
Constant | Description |
---|---|
Menu.DefaultMenu | A normal menu (default). |
Menu.EditMenu | An edit menu with pre-populated cut, copy and paste items. |
Signal Documentation
Method Documentation
void addItem(MenuItem item) |
Adds an item to the end of the menu.
void addMenu(Menu submenu) |
Adds a submenu to the end of the menu.
void insertItem(int index, MenuItem item) |
Inserts an item at the specified index in the menu.
void insertMenu(int index, Menu submenu) |
Inserts a submenu at the specified index in the menu.
Opens the menu at the specified target item, optionally aligned to a menu item.
void open(MenuItem item) |
Opens the menu at the current mouse position, optionally aligned to a menu item.
void removeItem(MenuItem item) |
Removes an item from the menu.
void removeMenu(Menu submenu) |
Removes a submenu from the menu.
© 2017 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.