Menu QML Type
Un menu natif. En savoir plus...
| Import Statement: | import Qt.labs.platform |
| Inherits: |
Propriétés
- 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
Signaux
Méthodes
- 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)
Description détaillée
Le type Menu fournit une API QML pour les menus contextuels natifs de la plateforme.

Le type « Menu » peut être utilisé dans un « MenuBar » ou comme menu contextuel autonome. L'exemple suivant montre comment ouvrir un menu contextuel lors d'un clic droit :
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()
}
}Sous-menus
Pour créer des sous-menus, déclarez un Menu comme enfant d'un autre Menu :
Menu {
title: qsTr("Edit")
Menu {
title: qsTr("Advanced")
MenuItem {
text: qsTr("Auto-indent Selection")
onTriggered: autoIndentSelection()
}
MenuItem {
text: qsTr("Rewrap Paragraph")
onTriggered: rewrapParagraph()
}
}
}Génération dynamique d’éléments de menu
Vous pouvez générer dynamiquement des éléments de menu à l'aide de ` Instantiator`. Le code suivant montre comment implémenter un sous-menu « Fichiers récents », dont les éléments proviennent d'une liste de fichiers stockés dans les paramètres :
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()
}
}
}Disponibilité
Un menu natif est actuellement disponible sur les plateformes suivantes :
- macOS
- iOS
- Android
- Linux (disponible uniquement sous forme de menu contextuel autonome lors de l'exécution avec le thème de la plateforme GTK+)
Le module Qt Labs Platform utilise Qt Widgets comme solution de secours sur les plateformes ne disposant pas d’une implémentation native. Par conséquent, les applications utilisant des types du module Qt Labs Platform doivent être liées à QtWidgets et utiliser QApplication au lieu de QGuiApplication.
Pour lier votre application à la bibliothèque QtWidgets, ajoutez ce qui suit à votre fichier de projet qmake :
QT += widgetsCréez une instance de QApplication dans 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();
}Remarque : la compatibilité des types dans les modules Qt.labs n’est pas garantie dans les versions futures.
Voir également MenuItem, MenuSeparator et MenuBar.
Documentation sur les propriétés
data : list<QtObject> [default]
Cette propriété par défaut contient la liste de tous les objets déclarés comme enfants du menu. La propriété « data » inclut des objets qui ne sont pas des instances de ` MenuItem `, tels que ` Timer ` et ` QtObject`.
Voir également items.
enabled : bool
Cette propriété indique si le menu est activé. La valeur par défaut est « true ».
font : font
Cette propriété définit la police du menu.
Voir également 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)]
Cette propriété contient l'icône de l'élément de menu.
Ces propriétés ont été introduites dans Qt Labs Platform 1.1 (Qt 5.12).
items : list<MenuItem>
Cette propriété contient la liste des éléments du menu.
menuBar : MenuBar [read-only]
Cette propriété contient la barre de menus à laquelle appartient le menu, ou la valeur « null » si le menu ne figure pas dans une barre de menus.
menuItem : MenuItem [read-only]
Cette propriété contient l'élément qui affiche le menu (dans un menu parent).
minimumWidth : int
Cette propriété définit la largeur minimale du menu. La valeur par défaut est « -1 » (aucune largeur minimale).
parentMenu : Menu [read-only]
Cette propriété contient le menu parent auquel appartient le menu, ou la valeur « null » si le menu n'est pas un sous-menu.
systemTrayIcon : SystemTrayIcon [read-only]
Cette propriété contient l'icône de la barre d'état système à laquelle appartient le menu, ou la valeur « null » si le menu n'est pas associé à une icône de la barre d'état système.
title : string
Cette propriété contient le titre du menu.
type : enumeration
Cette propriété indique le type du menu.
Valeurs disponibles :
| Constante | Description |
|---|---|
Menu.DefaultMenu | Un menu normal (par défaut). |
Menu.EditMenu | Un menu d'édition contenant des éléments prédéfinis pour couper, copier et coller. |
visible : bool
Cette propriété indique si le menu est visible. La valeur par défaut est « true ».
Documentation sur les signaux
aboutToHide()
Ce signal est émis lorsque le menu est sur le point d'être masqué à l'utilisateur.
Remarque : le gestionnaire correspondant est onAboutToHide.
aboutToShow()
Ce signal est émis lorsque le menu est sur le point d'être affiché à l'utilisateur.
Remarque : le gestionnaire correspondant est onAboutToShow.
Documentation de la méthode
void addItem(MenuItem item)
Ajoute un « item » à la fin du menu.
void addMenu(Menu submenu)
Ajoute un « submenu » à la fin du menu.
void clear()
Supprime tous les éléments du menu.
void close()
Ferme le menu.
void insertItem(int index, MenuItem item)
Insère un élément « item » à l'index spécifiée dans le menu.
void insertMenu(int index, Menu submenu)
Insère un élément « submenu » à l'index spécifiée dans le menu.
void open(MenuItem item)
Ouvre le menu à l'emplacement actuel de la souris, éventuellement aligné sur une item.
void open(Item target, MenuItem item)
Ouvre le menu à l'élément spécifié target, éventuellement aligné sur un item.
void removeItem(MenuItem item)
Supprime une « item » du menu.
void removeMenu(Menu submenu)
Supprime une « submenu » du menu.
© 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.