QT 笔记:禁止调整窗口大小
Qt 是一个跨平台的、基于 LGPL 协议的界面类库,可以方便地实现 C++ 的可视化窗口编程,在很大程度上弥补了 C++ 语言界面编程的弱点。
由于要支持跨平台,一些基于平台的功能就不能直接写入类库,导致了使用 Qt 时一些功能需要变通的方法来实现。
比如:Qt 并不支持直接禁止用户调整窗口大小。变通的方法是将窗口的最小大小和最大大小设置为一样。
为了更方便,QWidget 类实现了 setFixedSize(int w, int h) 方法,该方法的实质就是将窗口的大小、最小大小、最大大小设置为相同的值。
唯一的缺憾是,通过这种方法实现的窗口固定大小的效果不是很完美,比如,在 Windows 操作系统下,在窗口边框处仍然提示可以拉动窗口以改变大小,但是拉动时却拉不动。
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
Qt::WindowFlags flags = 0;
flags |= Qt::WindowMinimizeButtonHint;
setWindowFlags(flags); // 设置禁止最大化
setFixedSize(577,433); // 禁止改变窗口大小。
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
题外话:我帮你整理了包括 AI 写作、绘画、视频(自媒体制作)零门槛 AI 课程 + 国内可直接顺畅使用的软件。想让自己快速用上 AI 工具来降本增效,辅助工作和生活?限时报名。
© 转载需附带本文链接,依据 CC BY-NC-SA 4.0 发布。