PyQt5基本窗口控件(二)QWidget
二、QWidget
- 是基础窗口控件,是所有用户界面对象的基类,所有窗口和控件都继承自QWidget类。
- 窗口:包括标题栏、菜单栏、工具栏、关闭按钮、最小化、最大化按钮等。
- 控件:按钮、复选框、单选框、文本框、表格、进度条等
1、窗口坐标系统
- PyQt使用统一坐标系统来定位窗口控件的位置和大小,具体如下图。
- 以屏幕左上角为原点——即pos的(0, 0)点,从左向右为x轴正方向,从上向下为y轴正方向。同理每个窗口内部也有这样的坐标系统,原点、x轴、y轴围成的区域是ClientArea(客户区),在客户区的周围则是标题栏(WindowTitle)和边框(Frame)。
- 上图是QWidget的成员函数标识,分为三类。
- QWidget直接提供的成员函数:x()、y()获得窗口左上角的坐标,width()、height()获得客户区的宽度和高度。
- QWidget的geometry()提供的成员函数:x()、y()获得客户区左上角的坐标,width()、height()获得客户区的宽度和高度。
- QWidget的frameGeometry()提供的成员函数:x()、y()获得窗口左上角的坐标,width()、height()获得客户区、标题栏和边框在内整个窗口的宽度和高度。
2、常用的几何结构
(1)QWidget不包含边框的常用函数
-
改变客户区的面积
QWidget.resize(width, height) QWidget.resize(QSize)
这俩函数改变了长方形窗体的大小,也可以用鼠标拖动
-
获得客户区的大小
QWidget.size()
-
获得客户区的宽度和高度
QWidget.width() QWidget.height()
-
设置客户区的宽度和高度
QWidget.setFixedWidth(int width)
使用这个函数,客户区高度就是固定的,只可以改变宽度。
QWidget.setFixedHeight(int height)
这个函数宽度固定,只能改变高度
QWidget.setFixedSize(Qsize size) QWidget.setFixedSize(int width, int height)
这俩函数,高度宽度都固定。
QWidget.setGeometry(int x, int y, int width, int height) QWidget.setGeometry(QRect rect)
这俩函数,同时改变客户区的大小和位置,x和y对应的是x和y坐标。
(2)QWidget包含边框的常用函数
-
获得窗口的大小和位置
QWidget.frameGeometry()
-
设置窗口的位置
QWidget.move(int x, int y) QWidget.move(QPoint point)
-
获得窗口左上角的坐标
QWidget.pos()
案例四、屏幕坐标系统显示
# -*- coding:utf-8 -*-
# @Time:2022/12/7 0007 23:49
# @Author:晚秋拾叶
# @File:qt04_widgetGeometry.py
# Python之PyCharm
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
import sys
app = QApplication(sys.argv)
widget = QWidget()
btn = QPushButton(widget)
btn.setText("按钮")
# 以QWidget左上角为(0,0)点
btn.move(20, 20)
# 不同的操作系统可能对窗口的最小宽度有规定,若设置宽度小于限定值,则会以规定值进行显示
widget.resize(300, 200