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)
Detaillierte Beschreibung
Der Typ Menu bietet eine QML-API für plattformeigene Menü-Popups.
Menu kann in einem MenuBar verwendet werden, oder als eigenständiges Kontextmenü. Das folgende Beispiel zeigt, wie man ein Kontextmenü mit der rechten Maustaste ö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 Menü als Kind eines anderen Menüs:
Menu { title: qsTr("Edit") Menu { title: qsTr("Advanced") MenuItem { text: qsTr("Auto-indent Selection") onTriggered: autoIndentSelection() } MenuItem { text: qsTr("Rewrap Paragraph") onTriggered: rewrapParagraph() } } }
Menüpunkte dynamisch erzeugen
Mit Instantiator können Sie Menüpunkte dynamisch erzeugen. Der folgende Code zeigt, wie Sie ein Untermenü "Letzte Dateien" implementieren können, wobei die Einträge aus einer Liste von Dateien stammen, die in den Einstellungen gespeichert sind:
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 plattformeigenes Menü ist derzeit auf den folgenden Plattformen verfügbar:
- macOS
- iOS
- Android
- Linux (nur als eigenständiges Kontextmenü verfügbar, wenn es mit dem GTK+-Plattformthema ausgeführt wird)
Das Modul Qt Labs Platform verwendet Qt Widgets als Fallback auf Plattformen, für die keine native Implementierung verfügbar ist. Daher sollten Anwendungen, die Typen aus dem Qt Labs Platform Modul verwenden, zu QtWidgets linken und QApplication anstelle von QGuiApplication verwenden.
Um gegen die QtWidgets-Bibliothek zu linken, fügen Sie das Folgende zu Ihrer qmake-Projektdatei hinzu:
QT += widgets
Erstellen 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 ist nicht garantiert, dass Typen in Qt.labs-Modulen in zukünftigen Versionen kompatibel bleiben.
Siehe auch MenuItem, MenuSeparator, und MenuBar.
Eigenschaft Dokumentation
enabled : bool |
Diese Eigenschaft gibt an, ob das Menü aktiviert ist. Der Standardwert ist true
.
Diese Eigenschaft enthält das Symbol des Menüeintrags.
Diese QML-Eigenschaft wurde in Qt.labs.platform 1.1 (Qt 5.12) eingeführt.
menuBar : MenuBar |
Diese Eigenschaft enthält die Menüleiste, zu der das Menü gehört, oder null
, wenn sich das Menü nicht in einer Menüleiste befindet.
menuItem : MenuItem |
Diese Eigenschaft enthält das Element, das das Menü präsentiert (in einem übergeordneten Menü).
minimumWidth : int |
Diese Eigenschaft enthält die Mindestbreite des Menüs. Der Standardwert ist -1
(keine Mindestbreite).
parentMenu : Menu |
Diese Eigenschaft enthält das übergeordnete Menü, zu dem das Menü gehört, oder null
, wenn das Menü kein Untermenü ist.
systemTrayIcon : SystemTrayIcon |
Diese Eigenschaft enthält das Taskleistensymbol, zu dem das Menü gehört, oder null
, wenn das Menü nicht in einem Taskleistensymbol enthalten ist.
title : string |
Diese Eigenschaft enthält den Titel des Menüs.
type : enumeration |
Diese Eigenschaft enthält den Typ des Menüs.
Verfügbare Werte:
Konstante | Beschreibung |
---|---|
Menu.DefaultMenu | Ein normales Menü (Standard). |
Menu.EditMenu | Ein Bearbeitungsmenü mit vordefinierten Einträgen zum Ausschneiden, Kopieren und Einfügen. |
visible : bool |
Diese Eigenschaft gibt an, ob das Menü sichtbar ist. Der Standardwert ist true
.
Signal Dokumentation
aboutToHide() |
Dieses Signal wird ausgegeben, wenn das Menü vor dem Benutzer verborgen werden soll.
Hinweis: Der entsprechende Handler ist onAboutToHide
.
aboutToShow() |
Dieses Signal wird ausgegeben, wenn das Menü für den Benutzer angezeigt werden soll.
Hinweis: Der entsprechende Handler ist onAboutToShow
.
Methode Dokumentation
void addItem(MenuItem item) |
Fügt ein item am Ende des Menüs hinzu.
void addMenu(Menu submenu) |
Fügt ein submenu am Ende des Menüs ein.
void clear() |
Entfernt alle Einträge aus dem Menü.
void close() |
Schließt das Menü.
Fügt ein item an der angegebenen Stelle index in das Menü ein.
Fügt ein submenu an der angegebenen Stelle index in das Menü ein.
void open(MenuItem item) |
Öffnet das Menü an der aktuellen Mausposition, optional ausgerichtet an einem Menü item.
Öffnet das Menü an der angegebenen Position target, optional ausgerichtet an einem Menü item.
void removeItem(MenuItem item) |
Entfernt ein item aus dem Menü.
void removeMenu(Menu submenu) |
Entfernt ein submenu aus dem Menü.
© 2025 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.