如何最大化主窗口并防止在 QT 中调整大小

sci*_*guy 6 c++ qt

我试图在运行时最大化我的主 qt 窗口并防止用户调整它的大小。我努力了

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow widget;
    widget.showMaximized();
    widget.show();
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

这确实最大化了窗口,同时

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    this->setWindowFlags(this->windowFlags() | Qt::MSWindowsFixedSizeDialogHint);
    ui->setupUi(this);
}
Run Code Online (Sandbox Code Playgroud)

这会使最小化和关闭窗口中间标题栏中的“恢复”、“最大化”按钮变灰。

但我仍然可以向下拖动标题栏以取消最大化窗口的对齐,然后重新调整角和边缘的大小。

如何防止取消窗口的捕捉并且严格禁止调整大小。

谢谢!

mko*_*bas 5

如果您希望窗口框架消失并且最大化丢失恢复按钮不可见,您可以将代码的 UI 部分修改为:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
   this->setWindowFlags(this->windowFlags() | Qt::MSWindowsFixedSizeDialogHint);
   ui->setupUi(this);
   this->setWindowFlags(Qt::FramelessWindowHint); //Makes the frame invisible
   this->setWindowState(Qt::WindowMaximized); //Maximizes the window
}
Run Code Online (Sandbox Code Playgroud)