PyQt5基本窗口控件二(QWidget)

本文介绍了PyQt5中的基础窗口控件QWidget,详细讲解了其窗口坐标系统,包括不包含边框和包含边框的坐标函数,并提供了相关的成员函数示例,如resize、size、geometry等,帮助理解窗口控件的位置和尺寸调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()

坐标系统测试

# _*_ coding:utf-8 _*_
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton)

class MyDialog(QWidget):
    def 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值