在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"));
...
运行时,主窗口正确显示最大化状态,但菜单栏缩短为:
一个奇怪的行为是,如果我通过单击窗口顶部的标准化按钮来规范化窗口,那么再次最大化会拉伸菜单栏,因为它应该是。
我错过了什么?
答案 0 :(得分:1)
您可以在设置状态之前尝试调用QMainWindow::show()
函数,即:
[..]
w.show();
w.setWindowState(Qt::WindowMaximized);
我不确定我是否知道此类行为的确切原因,但我猜如果您尝试更改其几何图形而不显示它,Qt会执行不正确的布局。它也可能取决于您使用的窗口管理器。