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;
}
}
© 轉載需附帶本文連結,依 CC BY-NC-SA 4.0 釋出。