我是靠谱客的博主 傲娇老师,这篇文章主要介绍PyQt5基本窗口控件二(QWidget),现在分享给大家,希望可以做个参考。

QWidget基本介绍

基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类。


窗口坐标系统

PyQt使用统一的坐标系统来定位窗口控件的位置和大小,具体如下
窗口坐标系统
以屏幕左上角为原点,也就是(0, 0)点,从左向右为x轴正方向,从上向下为y轴正方向,整个屏幕的坐标系统用来定位顶层窗口。
在窗口内部也有自己的坐标系统,该坐标系统以客户区的左上角为原点,从左向右为x轴正方向,从上到下为y轴正方向,在客户区周围有标题栏和边框。
QWidget几何机构
从上图中,可以将这些成员函数分成三类:

  1. QWidget直接提供的成员函数,x(), y()获得整个窗口左上角的坐标,width()和height()返回客户区的宽度和高度。
  2. QWidget的geometry()提供的成员函数,x(),y()返回的是客户区左上角坐标,width(),height()返回客户区宽度和高度。
  3. QWidget的frameGeometry()提供的成员函数,x(),y()返回的是整个窗口左上角的坐标,-width(),height()也是整个对话框的宽度和高度,包括标题栏和边框。

从上图可以看出来,QWidget有两种常见的几何结构
不包含外面各种边框的几何结构(客户区)。
包含各种边框的几何结构。

不包含边框常用函数

  • 改变客户区面积
    QWidget.resize(width, height)
  • 获取客户区大小
    QWidget.size()
  • 获取客户区的宽度和高度
    QWidget.width()
    QWidget.height()
  • 设置客户区的宽度和高度(在某些维度上值不可改变)
    QWidget.setFixedWidth(int width)
    QWidget.setFixedHeight(int height)
    QWidget.setFixedSize(int width, int height)
  • 设置窗口的位置(值可以改变)
    QWidget.setGeometry(int x, int y, int width, int height)

包含边框常用函数

  • 获取窗口的大小和位置
    QWidget.frameGeometry()
  • 设置窗口的位置
    QWidget.move(int x, int y)
  • 获取窗口左上角坐标
    QWidget.pos()

坐标系统测试

复制代码
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# _*_ coding:utf-8 _*_ import sys from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton) class MyDialog(QWidget): def __init__(self): super(MyDialog, self).__init__() self.init_ui() def init_ui(self): # (50, 50)相对屏幕最左上角 # (300, 200)客户区宽度 高度 self.move(50, 50) self.resize(300, 200) self.setWindowTitle('测试窗口坐标系统') self.btn = QPushButton('测试按钮', self) # 相对于客户区的原点 self.btn.move(20, 20) self.show() def show_coordinate(self): print("显示整个窗口的参数") print("QWidget.x() = %d" % self.x()) print("QWidget.y() = %d" % self.y()) print("QWidget.pos()" + str(self.pos())) print("width=%d" % self.frameGeometry().width()) print("height=%dn" % self.frameGeometry().height()) print("显示工作区参数") print("x=%d" % self.geometry().x()) print("y=%d" % self.geometry().y()) print("width=%d" % self.width()) print("height=%d" % self.height()) print("geometry width=%d" % self.geometry().width()) print("geometry height=%dn" % self.geometry().height()) print("显示按钮参数") print("x=%d" % self.btn.x()) print("y=%d" % self.btn.y()) if __name__ == "__main__": app = QApplication(sys.argv[1:]) win = MyDialog() win.show_coordinate() sys.exit(app.exec_())

显示整个窗口的参数 QWidget.x() = 50 QWidget.y() = 50
QWidget.pos()PyQt5.QtCore.QPoint(50, 50) width=318 height=245

显示工作区参数 x=59 y=86 width=300 height=200 geometry width=300 geometry
height=200

显示按钮参数 x=20 y=20

坐标系测试

最后

以上就是傲娇老师最近收集整理的关于PyQt5基本窗口控件二(QWidget)的全部内容,更多相关PyQt5基本窗口控件二(QWidget)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部