PyQt5基本窗口控件(二)QWidget

易与天地准,故能弥纶天地之道。这节练习QWidget
摘要由CSDN通过智能技术生成

二、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
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

山哥ol

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

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

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

打赏作者

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

抵扣说明:

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

余额充值