Menu QML Type
Ein natives Menü. Mehr...
| Import Statement: | import Qt.labs.platform |
| Inherits: |
Eigenschaften
- data : list<QtObject>
- enabled : bool
- font : font
- 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))
- icon.mask : bool
- items : list<MenuItem>
- menuBar : MenuBar
- menuItem : MenuItem
- minimumWidth : int
- parentMenu : Menu
- systemTrayIcon : SystemTrayIcon
- title : string
- type : enumeration
- visible : bool
Signale
Methoden
- 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(MenuItem item)
- void open(Item target, MenuItem item)
- void removeItem(MenuItem item)
- void removeMenu(Menu submenu)
Ausführliche Beschreibung
Der Menütyp stellt eine QML-API für native Plattform-Menü-Popups bereit.

„Menu“ kann in einem „ MenuBar “ oder als eigenständiges Kontextmenü verwendet werden. Das folgende Beispiel zeigt, wie man ein Kontextmenü per Rechtsklick öffnet:
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()
}
}Untermenüs
Um Untermenüs zu erstellen, deklarieren Sie ein „Menu“ als untergeordnetes Element eines anderen „Menu“:
Menu {
title: qsTr("Edit")
Menu {
title: qsTr("Advanced")
MenuItem {
text: qsTr("Auto-indent Selection")
onTriggered: autoIndentSelection()
}
MenuItem {
text: qsTr("Rewrap Paragraph")
onTriggered: rewrapParagraph()
}
}
}Dynamisches Erstellen von Menüelementen
Mit „ Instantiator “ können Sie Menüelemente dynamisch generieren. Der folgende Code zeigt, wie Sie ein Untermenü „Zuletzt geöffnete Dateien“ implementieren können, dessen Elemente aus einer in den Einstellungen gespeicherten Dateiliste stammen:
Menu {
title: qsTr("File")
Menu {
id: recentFilesMenu
title: qsTr("Recent Files")
enabled: recentFilesInstantiator.count > 0
Instantiator {
id: recentFilesInstantiator
model: settings.recentFiles
delegate: MenuItem {
text: settings.displayableFilePath(modelData)
onTriggered: loadFile(modelData)
}
onObjectAdded: (index, object) => recentFilesMenu.insertItem(index, object)
onObjectRemoved: (index, object) => recentFilesMenu.removeItem(object)
}
MenuSeparator {}
MenuItem {
text: qsTr("Clear Recent Files")
onTriggered: settings.clearRecentFiles()
}
}
}Verfügbarkeit
Ein natives Plattformmenü ist derzeit auf den folgenden Plattformen verfügbar:
- macOS
- iOS
- Android
- Linux (nur als eigenständiges Kontextmenü verfügbar, wenn es mit dem GTK+-Plattformdesign ausgeführt wird)
Das Modul „ Qt Labs Platform “ verwendet „ Qt Widgets “ als Fallback auf Plattformen, auf denen keine native Implementierung verfügbar ist. Daher sollten Anwendungen, die Typen aus dem Modul „ Qt Labs Platform “ verwenden, eine Verknüpfung zu „ QtWidgets “ herstellen und „ QApplication “ anstelle von „ QGuiApplication “ verwenden.
Um eine Verknüpfung mit der Bibliothek „ QtWidgets “ herzustellen, fügen Sie Folgendes in Ihre qmake-Projektdatei ein:
QT += widgetsErstellen Sie eine Instanz von „ QApplication “ in „ main() “:
#include <QApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}Hinweis: Es kann nicht garantiert werden, dass die Typen in Qt.labs-Modulen in zukünftigen Versionen kompatibel bleiben.
Siehe auch MenuItem, MenuSeparator und MenuBar.
Dokumentation zu den Eigenschaften
data : list<QtObject> [default]
Diese Standard-Eigenschaft enthält die Liste aller Objekte, die als untergeordnete Elemente des Menüs deklariert wurden. Die Eigenschaft „data“ umfasst Objekte, die keine Instanzen von „ MenuItem “ sind, wie beispielsweise „ Timer “ und „ QtObject “.
Siehe auch „ items “.
enabled : bool
Diese Eigenschaft gibt an, ob das Menü aktiviert ist. Der Standardwert lautet „ true “.
font : font
Diese Eigenschaft legt die Schriftart des Menüs fest.
Siehe auch „ title “.
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)]
Diese Eigenschaft enthält das Symbol des Menüelements.
Diese Eigenschaften wurden in Qt Labs Platform 1.1 (Qt 5.12) eingeführt.
items : list<MenuItem>
Diese Eigenschaft enthält die Liste der Menüpunkte.
menuBar : MenuBar [read-only]
Diese Eigenschaft enthält die Menüleiste, zu der das Menü gehört, oder den Wert „ null “, falls sich das Menü nicht in einer Menüleiste befindet.
menuItem : MenuItem [read-only]
Diese Eigenschaft enthält das Element, das das Menü (in einem übergeordneten Menü) anzeigt.
minimumWidth : int
Diese Eigenschaft legt die Mindestbreite des Menüs fest. Der Standardwert lautet „ -1 “ (keine Mindestbreite).
parentMenu : Menu [read-only]
Diese Eigenschaft enthält das übergeordnete Menü, zu dem das Menü gehört, oder den Wert „ null “, falls das Menü kein Untermenü ist.
systemTrayIcon : SystemTrayIcon [read-only]
Diese Eigenschaft enthält das Symbol in der Taskleiste, zu dem das Menü gehört, oder den Wert „ null “, falls das Menü nicht in einem Symbol in der Taskleiste enthalten ist.
title : string
Diese Eigenschaft enthält den Titel des Menüs.
type : enumeration
Diese Eigenschaft gibt den Typ des Menüs an.
Mögliche Werte:
| Konstante | Beschreibung |
|---|---|
Menu.DefaultMenu | Ein normales Menü (Standard). |
Menu.EditMenu | Ein Bearbeitungsmenü mit vorab ausgefüllten Einträgen für „Ausschneiden“, „Kopieren“ und „Einfügen“. |
visible : bool
Diese Eigenschaft gibt an, ob das Menü sichtbar ist. Der Standardwert lautet „ true “.
Signal-Dokumentation
aboutToHide()
Dieses Signal wird ausgelöst, wenn das Menü für den Benutzer ausgeblendet werden soll.
Hinweis: Der entsprechende Handler lautet „ onAboutToHide “.
aboutToShow()
Dieses Signal wird ausgelöst, wenn das Menü dem Benutzer angezeigt werden soll.
Hinweis: Der entsprechende Handler lautet „ onAboutToShow “.
Methodendokumentation
void addItem(MenuItem item)
Fügt am Ende des Menüs den Eintrag „ item “ hinzu.
void addMenu(Menu submenu)
Fügt am Ende des Menüs einen „ submenu “ hinzu.
void clear()
Entfernt alle Einträge aus dem Menü.
void close()
Schließt das Menü.
void insertItem(int index, MenuItem item)
item Fügt im Menü an der angegebenen Stelle index ein.
void insertMenu(int index, Menu submenu)
submenu Fügt im Menü unter der angegebenen Adresse „ index “ den Eintrag „ “ ein.
void open(MenuItem item)
Öffnet das Menü an der aktuellen Mausposition, optional ausgerichtet auf eine Menü item.
void open(Item target, MenuItem item)
Öffnet das Menü an der angegebenen Position „ target “, optional ausgerichtet auf die Menüposition „ item “.
void removeItem(MenuItem item)
Entfernt ein „ item “ aus dem Menü.
void removeMenu(Menu submenu)
Entfernt einen „ submenu “ aus dem Menü.
© 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.