主窗口最大化时菜单栏未最大化

时间:2017-12-05 08:32:08

标签: qt qmainwindow

在Qt 5.5.1(Linux)中,我将主窗口显示为最大化状态:

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

在主窗口构造函数中,我调用CreateMenuBar来创建一些菜单:

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

运行时,主窗口正确显示最大化状态,但菜单栏缩短为:

classification

一个奇怪的行为是,如果我通过单击窗口顶部的标准化按钮来规范化窗口,那么再次最大化会拉伸菜单栏,因为它应该是。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

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

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

我不确定我是否知道此类行为的确切原因,但我猜如果您尝试更改其几何图形而不显示它,Qt会执行不正确的布局。它也可能取决于您使用的窗口管理器。