在QT中将QMenuBar放在QMainWindow底部

发布于 2025-01-07 14:35:47 字数 185 浏览 0 评论 0原文

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

我正在做我的论文项目,我的导师要求我在屏幕底部放置一个 QMenuBar。这可能吗?我一直在尝试调整菜单栏的几何形状。在 Qt Designer 中,我可以移动菜单栏位置,但是当我运行项目时,菜单栏始终处于打开状态。

提前致谢。

Is there any way to put a QMenuBar at screen bottom (I mean, at QMainWindow bottom)?

I'm working on my thesis project, and my director asked me to put a QMenuBar at screen bottom. Is this possible?, I have been trying adjusting the menubar geometry. In Qt Designer I can move the bar position, but when I run my project, the menu bar is always up.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

提笔书几行 2025-01-14 14:35:47

不要使用 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 中有效。

Don't use the default QMenuBar provided with the QMainWindow. Instead create your own. This proof of concept example creates a new QMenuBar which is added to a QVBoxLayout which was added to the 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);
}

This works at least in Windows.

淡看悲欢离合 2025-01-14 14:35:47

我已将菜单放置在 QDockWidget 中,因此我认为也可以将菜单栏放置在底部。

但您必须以编程方式执行此操作。 QMenuBar继承了QWidget,因此只需在QMainWindow的底部添加一个QWidget,然后创建一个QMenuBar并将此QWidget指定为父窗口小部件即可。

I've placed menus in the QDockWidget so I assume it is also possible to place menu bar at the bottom.

But you must do it programmaticaly. QMenuBar inherits QWidget, so just add a QWidget at the bottom of QMainWindow, then create a QMenuBar specifying this QWidget as a parent widget.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文