Pergunta

Existe alguma maneira de colocar um QMenuBar na parte inferior da tela (quer dizer, na parte inferior da QMainWindow)?

Estou trabalhando em meu projeto de tese e meu diretor me pediu para colocar um QMenuBar na parte inferior da tela.Isso é possível ?, Tenho tentado ajustar a geometria do menu.No Qt Designer, posso mover a posição da barra, mas quando executo meu projeto, a barra de menu está sempre aberta.

Agradecemos antecipadamente.

Foi útil?

Solução

Não use o QMenuBar padrão fornecido com o QMainWindow.Em vez disso, crie o seu próprio.Este exemplo de prova de conceito cria um novo QMenuBar que é adicionado a um QVBoxLayout que foi adicionado à janela 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);
}

Isso funciona pelo menos no Windows.

Outras dicas

Coloquei menus no QDockWidget, então presumo que também seja possível colocar a barra de menus na parte inferior.

Mas você deve fazer isso de forma programática.QMenuBar herda QWidget, então basta adicionar um QWidget na parte inferior de QMainWindow e, em seguida, criar um QMenuBar especificando esse QWidget como um widget pai.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top