c++ - Qt creador, inserte el menú personalizado en el lugar especificado en la barra de menú
user-interface menu (2)
Si desea agregar un submenú en el medio de la barra de menú, esto no es trivial. No hay una API directa para hacer esto, pero probablemente pueda sacar eso manipulando las acciones internas de QWidget (QMenu :: addMenu simplemente llama a QWidget::addAction(menu->menuAction())
.
En teoría, puedes manipular QMenuBar :: actions (), pero nunca lo hice.
Cuando tuve que manejar este problema, simplemente reconstruí el menú de otro conjunto de datos (busque en su motor de búsqueda favorito qmdilib
y verá mi solución).
He creado una barra de menú y algunos menús con creador Qt. Uno de los menús tenía que estar codificado para usar QActionGroup
funciones de QActionGroup
. Ahora es fácil agregar mi menú personalizado a la barra de menú con:
printMenu = menuBar()->addMenu(tr("&Print"));
pero mi menú estará en la última posición de la barra de menú. ¿Cómo agrego mi menú en un lugar específico? (por ejemplo, el segundo lugar justo después del menú Archivo)
Saludos
Utilice QMenuBar :: insertMenu junto con QMenu :: menuAction .
Por ejemplo, si desea insertar dinámicamente el menú "Imprimir" en la ubicación antes del menú "Ayuda", puede hacer algo como esto:
QMenu *printMenu = new QMenu(tr("&Print"));
menuBar()->insertMenu(ui->menuHelp->menuAction(), printMenu);