Auf dieser Seite

Menu QML Type

Ein natives Menü. Mehr...

Import Statement: import Qt.labs.platform
Inherits:

QtObject

Eigenschaften

Signale

Methoden

Ausführliche Beschreibung

Der Menütyp stellt eine QML-API für native Plattform-Menü-Popups bereit.

Ein natives Popup-Menü

„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()
    }
}

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 += 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 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.

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.

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:

KonstanteBeschreibung
Menu.DefaultMenuEin normales Menü (Standard).
Menu.EditMenuEin 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.