c++ - Qt - 拖动标题栏时防止窗口调整大小

标签 c++ windows qt user-interface qt5

我希望我的窗口总是最大化。我尝试设置:

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/

相关文章:

C++ 模板和继承

c# - 括号和赋值运算符顺序

c++ - QSerialPort 5.2 中的 SerialPortError?

c++ - 抑制 SSL 错误

在 main 中可见的函数中声明的 C++ 结构

c++ - 读取 ASCII 以外的字符

java - 从 Java 中的 ProcessBuilder 执行时,Windows REG 命令不起作用

c++ - 在不手动创建线程的情况下定期调用 C 函数

c - 对主 ld 的 undefined reference

c++ - 动态创建 va_list