有没有办法将 QMenuBar 放在屏幕底部(我的意思是,在 QMainWindow 底部)?
我正在做我的论文项目,我的主管让我在屏幕底部放置一个 QMenuBar。这可能吗?,我一直在尝试调整菜单栏的几何形状。在 Qt Designer 中,我可以移动栏的位置,但是当我运行我的项目时,菜单栏总是向上的。
提前致谢。
有没有办法将 QMenuBar 放在屏幕底部(我的意思是,在 QMainWindow 底部)?
我正在做我的论文项目,我的主管让我在屏幕底部放置一个 QMenuBar。这可能吗?,我一直在尝试调整菜单栏的几何形状。在 Qt Designer 中,我可以移动栏的位置,但是当我运行我的项目时,菜单栏总是向上的。
提前致谢。
不要使用 QMainWindow 提供的默认 QMenuBar。而是创建自己的。这个概念证明示例创建了一个新的 QMenuBar,它被添加到一个 QVBoxLayout 中,而 QVBoxLayout 又被添加到了主窗口中:
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 作为父窗口小部件。