QT 笔记:禁止调整窗口大小

Qt 是一个跨平台的、基于 LGPL 协议的界面类库,可以方便地实现 C++ 的可视化窗口编程,在很大程度上弥补了 C++ 语言界面编程的弱点。

由于要支持跨平台,一些基于平台的功能就不能直接写入类库,导致了使用 Qt 时一些功能需要变通的方法来实现。

比如:Qt 并不支持直接禁止用户调整窗口大小。变通的方法是将窗口的最小大小和最大大小设置为一样。

为了更方便,QWidget 类实现了 setFixedSize(int w, int h) 方法,该方法的实质就是将窗口的大小、最小大小、最大大小设置为相同的值。

唯一的缺憾是,通过这种方法实现的窗口固定大小的效果不是很完美,比如,在 Windows 操作系统下,在窗口边框处仍然提示可以拉动窗口以改变大小,但是拉动时却拉不动。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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
;

    }

}

您也许喜欢

  1. C++笔记:习题 6.20
  2. std::vector : 用法与技巧
  3. C++笔记:使用std::vector储存质数表
  4. C++笔记:[程序]反转所给的字符串
  5. C++笔记:入门
  6. 使用 OleDB 实现远程多线程数据库访问(C#, Access 数据库)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值