Pregunta

¿Hay alguna forma de poner un QMenuBar en la parte inferior de la pantalla (quiero decir, en la parte inferior de QMainWindow)?

Estoy trabajando en mi proyecto de tesis y mi director me pidió que pusiera un QMenuBar en la parte inferior de la pantalla.¿Es esto posible ?, he estado intentando ajustar la geometría de la barra de menú.En Qt Designer puedo mover la posición de la barra, pero cuando ejecuto mi proyecto, la barra de menú siempre está arriba.

Gracias de antemano.

¿Fue útil?

Solución

No utilice el QMenuBar predeterminado que se proporciona con QMainWindow.En su lugar, crea el tuyo propio.Este ejemplo de prueba de concepto crea un nuevo QMenuBar que se agrega a un QVBoxLayout que se agregó a la ventana principal:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QMenuBar* bar = new QMenuBar(this);
    ui->verticalLayout->addWidget(bar);

    QMenu* menu1 = new QMenu("First menu", bar);
    menu1->addMenu("Foo");
    menu1->addMenu("Bar");

    QMenu* menu2 = new QMenu("Second menu", bar);
    menu2->addMenu("Foo");
    menu2->addMenu("Bar");

    bar->addMenu(menu1);
    bar->addMenu(menu2);
}

Esto funciona al menos en Windows.

Otros consejos

He colocado menús en el QDockWidget, así que supongo que también es posible colocar la barra de menús en la parte inferior.

Pero debes hacerlo de manera programática.QMenuBar hereda QWidget, así que simplemente agregue un QWidget en la parte inferior de QMainWindow, luego cree un QMenuBar especificando este QWidget como un widget padre.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top