我希望我的窗口总是最大化。我尝试设置:
setWindowFlags(Qt::Window | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
(...)
showMaximized();
setMinimumSize(QSize(width(), height()));
setFixedSize(QSize(width(), height()));
因此窗口已最大化打开,但我仍然可以单击其标题栏并将其向下拖动。这样做时,Windows (10) 会将窗口从最大化状态调整为正常状态。
如何为我的窗口禁用此行为?
最佳答案
我认为最大化窗口的概念对于维护可拖动窗口来说效率较低。相反,将窗口几何形状设置为最大屏幕尺寸,然后您可以根据需要拖动而无需系统调整窗口大小。
为此,您需要一个 QDesktopWidget
实例,它提供屏幕的几何信息,例如完整的拉伸(stretch)宽度/高度。然后只需将您的窗口大小设置为固定这些信息即可。
在您的主窗口 .cpp 中添加以下内容:
QDesktopWidget* myscreen = QApplication::desktop();
int width = myscreen->width();
int height = myscreen->height();
this->setFixedSize(width, height);
ui->setupUi(this);
... ...
编辑
窗口仍然可以完全跟踪,您仍然可以使用 w.showMaximized();
并且窗口不会在拖动时减小其大小。
关于c++ - Qt - 拖动标题栏时防止窗口调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49221901/