6. PyQt5基础窗口部件QWidget

1. QWidget 简介

QWidget类是所有用户界面对象的基类,被称为基础窗口部件。QWidget类继承自QObject类和QPaintDevice类,其中

  • QObject类是所有支持QT对象模型的对象的基类
  • QPaintDevice类是所有可以绘制的对象的基类

QWidget类关系图

这些类都位于QtWidgets模块类,注意,QtWidgets是模块,QWidget是类,两个名称不一样。

2. 窗口、子部件以及窗口类型

2.1 QT中窗口的基本概念

  1. 部件或窗口部件:
    Qt 把建立用户界面的元素称为窗口部件(widget),简称部件,比如:主
    窗口、对话框、按钮、标签等在 Qt 中都称为部件。
  2. 窗口:
    没有嵌入到其他部件中的部件被称为窗口, 通常来说窗口是没有父部件的部件(也
    可以有父部件),因此窗口又被称为顶级部件,与其相对的非窗口部件,称为子部件。 窗
    口通常含有边框和标题栏(当然也可以没有这些)。窗口若有父部件,则在父级被删除时删
    除。 QDialog 和 QMainWindow 部件,默认为窗口,即使在构造函数中为其指定父部件,
    仍是窗口。 窗口通常会显示在任务栏上。
  3. 容器:
    放置其他部件的部件被称为容器,注意,容器可以嵌入到其他部件(即容器可以有
    父部件),而窗口则不能。
  4. 窗口和窗口部件在 Qt 中是两个不同的概念,为避免引起混乱,以后把窗口部件统称为部
    件。
  5. 若一个部件是另一个部件的父对象,则子部件的边界会完全的位于父部件的边界内部。
  6. Qt 中大部分部件都是用作子部件的,比如标签、按钮等。经常被用作窗口的部件是
    QMainWindow 和 QDialog 的各个子类

2.2 窗口的组成

窗口的基本组成见下图所示:

20221113223228

2.3 窗口类型

窗口一般都是有边框和标题栏的,但其实这也并不一定是必需的。QWidget的构造函数有两个参数:

  • QWidget *parent = 0
  • Qt::WindowFlags f = 0

parent指父窗口部件,默认值为0,表明没有父窗口。
f是Qt::WindowType枚举类型的值或组合。Qt::WindowType类型用来为部件指定各种窗口系统属性,比如f=0表明窗口类型的值为Qt::Widget, 这是QWidget的默认类型,这种类型的部件如果有父窗口,那么它就是子部件,否则就是独立窗口。

3. 窗口的几何布局

对于一个窗口,往往要设置它的大小和运行时出现的位置,这就是我们要说的窗口的几何布局。假设我们有一个Widget,包含了一个子部件label,那么widget默认的大小就是它所包含的label的大小,而widget和label出现在窗口上的位置是不确定的。

对于窗口的大小和位置,根据是否包含边框和标题栏两种情况,要用不同的函数来获取。

Qt 对窗口位置和大小进行描述的属性见下图:

20221113231310

这里的函数分为两类,一类是包含框架的,一类是不包含框架的:

  • 包含框架:x(), y(), frameGeometry(), pos(), move()等函数
  • 不包含框架: geometry(), width(), height(), rect(), size()等函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smart_cat

你的鼓励将是我写作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值