PyQT5 学习笔记:第二节 QWidget类 窗口创建、大小设置及内容边距等API及用法实例
前言:
第一节的学习笔记被吐槽了…,做人还是要低调,不要标题党啊…。
这次给大家带来的是PyQT5 QWidget类中窗口创建、大小设置及内容边距的相关API及用法。
这一部分内容好像在网页前端设计课程里老师提的比较多,但是在PyQt5里面好像讲的不是特别多。
笔记原文如下:
1 窗口创建相关API及用法
1.1 API :
QWidget 和QObject不同,它是我们真正开始学习的第一控件(可以被用户看到的控件)。
创建方法:
window = QWidget()
Qwidget()中可填入参数:"(self, parent=None, flags)"
parent :父类,设置窗口父类对象,不设置为None,为顶层窗口;
flags:窗口标志。
窗口标志一览:
项目 | 说明 |
---|---|
Qt.MSWindowsFixedSizeDialogHint | 窗口无法调整大小 |
Qt.FramelessWindowHint | 窗口无边框 |
Qt.CustomizeWindowHint | 有边框但无标题栏和按钮,不能移动和拖动 |
Qt.WindowTitleHint | 添加标题栏和一个关闭按钮 |
Qt.WindowSystemMenuHint | 添加系统目录和一个关闭按钮 |
Qt.WindowMaximizeButtonHint | 激活最大化和关闭按钮,禁止最小化按钮 |
Qt.WindowMinimizeButtonHint | 激活最小化和关闭按钮,禁止最大化按钮 |
Qt.WindowMinMaxButtonsHint | 激活最小化,最大化和关闭按钮 |
Qt.WindowCloseButtonHint | 添加一个关闭按钮 |
Qt.WindowContextHelpButtonHint | 添加问号和关闭按钮,同对话框 |
Qt.WindowStaysOnTopHint | 窗口始终处于顶层位置 |
Qt.WindowStaysOnBottomHint | 窗口始终处于底层位置 |
1.2实例:设置一个无法调整大小的窗口
import sys
from PyQt5.Qt import *
app = QApplication(sys.argv)
window = QWidget(flags=Qt.MSWindowsFixedSizeDialogHint)
window.show()
sys.exit(app.exec_())
2 窗口坐标及位置API及用法
2.1 窗口坐标API
项目 | 说明 |
---|---|
x() | 相对于父控件的x位置 顶层控件(没有父控件)则相对于桌面的x位置 |
y() | 相对于父控件的y位置 顶层控件(没有父控件)则相对于桌面的y位置 |
pos() | x和y的组合 包含窗口框架 QPoint(x, y) |
width() | 控件的宽度,不包含任何窗口框架 |
height() | 控件的高度,不包含任何窗口框架 |
size() | width和height的组合 不包含任何窗口框架 QSize(width, height) |
geometry() | 用户区域相对于父控件的位置和尺寸组合 QRect(x, y, width, height) |
rect() | 0, 0, width, height的组合 QRect(0, 0, width, height) |
frameSize() | 框架大小 |
frameGeometry() | 框架尺寸 |
2.2 窗口位置API
项目 | 说明 |
---|---|
move(x, y) | 操控的是x, y;也就是pos 包括窗口框架 |
resize(width, height) | 操控的是宽高 不包括窗口框架 |
setGeometry(x_noFrame, y_noFrame, width, height) | 注意,此处参照为用户区域 |
adjustSize() | 根据内容自适应大小 |
setFixedSize() | 设置固定尺寸 |
注意:控件显示完毕之后, 具体的位置或者尺寸数据才会正确。
大部分的PyQT教程讲到窗口大小和位置的时候都会把这张非常经典的图拿出来给大家参考:
大家可以对照着上面的API看看。
这里也用下面的实例来帮助大家理解。