Main Window 最大化时菜单栏未最大化

Menu Bar not Maximized When Main Window Maximized

在 Qt 5.5.1 (Linux) 中,我将 main window 显示为最大化状态:

QApplication a(argc, argv);
MainWindow w;
w.setWindowState(Qt::WindowMaximized);
w.show();
return a.exec();

在主 window 构造函数中,我调用了 CreateMenuBar,它只是创建了一些菜单:

fileMenu = menuBar()->addMenu(tr("&File"));
projectMenu = menuBar()->addMenu(tr("&Project"));
...

当 运行 时,Main Window 正确显示为最大化状态,但菜单栏缩短为:

一个奇怪的行为是,如果我通过单击 window 顶部的标准化按钮来标准化 window,然后再次最大化确实会按应有的方式拉伸菜单栏。

我错过了什么?

您可以尝试在设置其状态之前调用 QMainWindow::show() 函数,即:

[..]
w.show();
w.setWindowState(Qt::WindowMaximized);

我不确定我是否知道这种行为的确切原因,但我猜想如果您尝试在不显示它的情况下更改其几何形状,Qt 会执行错误的布局。这也可能取决于您使用的 window 管理器。