Question

Existe-t-il un moyen de mettre un QMenubar en bas de l'écran (je veux dire, au fond QMainwindow)?

Je travaille sur mon projet de thèse et mon directeur m'a demandé de mettre un QMenubar au fond de l'écran. Est-ce possible ?, J'ai essayé d'ajuster la géométrie Menubar. Dans QT Designer, je peux déplacer la position de la barre, mais lorsque j'exécute mon projet, la barre de menus est toujours en place.

Merci d'avance.

Était-ce utile?

La solution

N'utilisez pas le QMenubar par défaut fourni avec le qmainwindow. Créez plutôt le vôtre. Cet exemple de preuve de concept crée un nouveau QMenubar qui est ajouté à un QVBoxLayout qui a été ajouté à la mainwindow:

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);
}

Cela fonctionne au moins sous Windows.

Autres conseils

J'ai placé des menus dans le QDockwidget, donc je suppose qu'il est également possible de placer la barre de menu en bas.

Mais vous devez le faire programmatique. QMenubar hérite Qwidget, alors ajoutez simplement un QWidget en bas de QMainwindow, puis créez un QMenubar spécifiant ce widget Qwidget comme parent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top