我试图在运行时最大化我的主 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)
这会使最小化和关闭窗口中间标题栏中的“恢复”、“最大化”按钮变灰。
但我仍然可以向下拖动标题栏以取消最大化窗口的对齐,然后重新调整角和边缘的大小。
如何防止取消窗口的捕捉并且严格禁止调整大小。
谢谢!
如果您希望窗口框架消失并且最大化丢失恢复按钮不可见,您可以将代码的 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)