Menu QML Type
Un menu indigène. Plus d'informations...
| 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 des plates-formes natives.

Le menu peut être utilisé dans un site MenuBar ou comme menu contextuel autonome. L'exemple suivant montre comment ouvrir un menu contextuel lors d'un clic droit de la souris :
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érer dynamiquement des éléments de menu
Vous pouvez générer dynamiquement des éléments de menu à l'aide de Instantiator. Le code suivant montre comment vous pouvez mettre en œuvre un sous-menu "Fichiers récents", où 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 de plate-forme natif est actuellement disponible sur les plates-formes suivantes :
- macOS
- iOS
- Android
- Linux (uniquement disponible en tant que menu contextuel autonome lorsqu'il est exécuté avec le thème de plateforme GTK+)
Le module Qt Labs Platform utilise Qt Widgets comme solution de repli sur les plateformes qui ne disposent pas d'une implémentation native. Par conséquent, les applications qui utilisent des types du module Qt Labs Platform doivent être liées à QtWidgets et utiliser QApplication au lieu de QGuiApplication.
Pour établir un lien avec la bibliothèque QtWidgets, ajoutez ce qui suit à votre fichier de projet qmake :
QT += widgets
Cré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(); }
Note : La compatibilité des types dans les modules Qt.labs n'est pas garantie dans les versions futures.
Voir aussi 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 les 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 de caractères du menu.
Voir aussi 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 le ménubar auquel le menu appartient, ou null si le menu ne se trouve pas dans un ménubar.
menuItem : MenuItem [read-only]
Cette propriété contient l'élément qui présente 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 (pas de largeur minimale).
parentMenu : Menu [read-only]
Cette propriété contient le menu parent auquel le menu appartient, ou 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 le menu appartient, ou null si le menu ne se trouve pas dans 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 de menu.
Valeurs disponibles :
| Constante | Description |
|---|---|
Menu.DefaultMenu | Un menu normal (par défaut). |
Menu.EditMenu | Un menu d'édition avec des éléments pré-remplis 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 le signal
aboutToHide()
Ce signal est émis lorsque le menu est sur le point d'être caché à 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 une adresse item à l'adresse index spécifiée dans le menu.
void insertMenu(int index, Menu submenu)
Insère une page submenu à l'adresse index spécifiée dans le menu.
void open(MenuItem item)
Ouvre le menu à la position actuelle de la souris, éventuellement aligné sur un menu item.
void open(Item target, MenuItem item)
Ouvre le menu à l'article target spécifié, éventuellement aligné sur un menu item.
void removeItem(MenuItem item)
Supprime un site item du menu.
void removeMenu(Menu submenu)
Supprime un site 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.