Menu QML Type
Un menú nativo. Más...
| Import Statement: | import Qt.labs.platform |
| Inherits: |
Propiedades
- 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
Señales
Métodos
- 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)
Descripción detallada
El tipo Menu proporciona una API QML para menús emergentes nativos de la plataforma.

Menu puede utilizarse en MenuBar, o como menú contextual independiente. El siguiente ejemplo muestra cómo abrir un menú contextual al hacer clic con el botón derecho del ratón:
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()
}
}Submenús
Para crear submenús, declare un Menú como hijo de otro Menú:
Menu { title: qsTr("Edit") Menu { title: qsTr("Advanced") MenuItem { text: qsTr("Auto-indent Selection") onTriggered: autoIndentSelection() } MenuItem { text: qsTr("Rewrap Paragraph") onTriggered: rewrapParagraph() } } }
Generación dinámica de elementos de menú
Puede generar dinámicamente elementos de menú con Instantiator. El siguiente código muestra cómo puede implementar un submenú "Archivos recientes", en el que los elementos proceden de una lista de archivos almacenados en la configuración:
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() } } }
Disponibilidad
Un menú nativo de la plataforma está disponible actualmente en las siguientes plataformas:
- macOS
- iOS
- Android
- Linux (sólo disponible como menú contextual independiente cuando se ejecuta con el tema de plataforma GTK+).
El módulo Qt Labs Platform utiliza Qt Widgets como alternativa en plataformas que no disponen de una implementación nativa. Por lo tanto, las aplicaciones que utilicen tipos del módulo Qt Labs Platform deben enlazar con QtWidgets y utilizar QApplication en lugar de QGuiApplication.
Para enlazar con la biblioteca QtWidgets, añada lo siguiente al archivo de proyecto qmake:
QT += widgets
Crear una instancia de QApplication en 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(); }
Nota: No se garantiza que los tipos de los módulos Qt.labs sigan siendo compatibles en futuras versiones.
Véase también MenuItem, MenuSeparator, y MenuBar.
Documentación de propiedades
data : list<QtObject> [default]
Esta propiedad por defecto contiene la lista de todos los objetos declarados como hijos del menú. La propiedad data incluye objetos que no son instancias de MenuItem, como Timer y QtObject.
Véase también items.
enabled : bool
Esta propiedad indica si el menú está habilitado. El valor por defecto es true.
font : font
Esta propiedad contiene la fuente del menú.
Véase también 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)]
Esta propiedad contiene el icono del elemento de menú.
Estas propiedades se introdujeron en Qt.labs.platform 1.1 (Qt 5.12).
items : list<MenuItem>
Esta propiedad contiene la lista de elementos del menú.
menuBar : MenuBar [read-only]
Esta propiedad contiene el menubar al que pertenece el menú, o null si el menú no está en un menubar.
menuItem : MenuItem [read-only]
Esta propiedad contiene el elemento que presenta el menú (en un menú padre).
minimumWidth : int
Esta propiedad contiene la anchura mínima del menú. El valor por defecto es -1 (sin anchura mínima).
parentMenu : Menu [read-only]
Esta propiedad contiene el menú padre al que pertenece el menú, o null si el menú no es un submenú.
systemTrayIcon : SystemTrayIcon [read-only]
Esta propiedad contiene el icono de la bandeja del sistema al que pertenece el menú, o null si el menú no está en un icono de la bandeja del sistema.
title : string
Esta propiedad contiene el título del menú.
type : enumeration
Esta propiedad contiene el tipo de menú.
Valores disponibles:
| Constante | Descripción |
|---|---|
Menu.DefaultMenu | Un menú normal (por defecto). |
Menu.EditMenu | Un menú de edición con elementos de cortar, copiar y pegar. |
visible : bool
Esta propiedad indica si el menú es visible. El valor por defecto es true.
Documentación de la señal
aboutToHide()
Esta señal se emite cuando el menú está a punto de ocultarse al usuario.
Nota: El manejador correspondiente es onAboutToHide.
aboutToShow()
Esta señal se emite cuando el menú está a punto de mostrarse al usuario.
Nota: El manejador correspondiente es onAboutToShow.
Documentación del método
void addItem(MenuItem item)
Añade un item al final del menú.
void addMenu(Menu submenu)
Añade un submenu al final del menú.
void clear()
Elimina todos los elementos del menú.
void close()
Cierra el menú.
void insertItem(int index, MenuItem item)
Inserta un item en el index especificado en el menú.
void insertMenu(int index, Menu submenu)
Inserta un submenu en el index especificado en el menú.
void open(MenuItem item)
Abre el menú en la posición actual del ratón, opcionalmente alineado con un menú item.
void open(Item target, MenuItem item)
Abre el menú en el elemento target especificado, opcionalmente alineado a un menú item.
void removeItem(MenuItem item)
Elimina un item del menú.
void removeMenu(Menu submenu)
Elimina un submenu del 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.