将QMenuBar放在QT中的QMainWindow底部



有没有办法将QMenuBar放在屏幕底部(我的意思是,放在QMainWindow底部)?

我正在做我的论文项目,我的主任让我在屏幕底部放一个QMenuBar。这可能吗?,我一直在尝试调整菜单栏的几何图形。在Qt Designer中,我可以移动菜单栏的位置,但当我运行项目时,菜单栏总是向上的。

提前谢谢。

不要使用QMainWindow提供的默认QMenuBar。相反,创建自己的。这个概念验证示例创建了一个新的QMenuBar,该QMenuBar被添加到QVBoxLayout中,该QVBox布局被添加到主窗口:

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

这至少在Windows中有效。

我已经在QDockWidget中放置了菜单,所以我认为也可以在底部放置菜单栏。

但你必须用程序来做。QMenuBar继承了QWidget,所以只需在QMainWindow的底部添加一个QWidget即可,然后创建一个QMenuBar,将该QWidget指定为父窗口小部件。

最新更新