pyqt5-QWidget 位置、大小和显示

发布时间 2023-07-02 02:44:05作者: 挖洞404

1、位置

(1)x和y

  • 分别返回当前组件相对于所在容器左上顶点在水平方向和垂直方向上的距离,类型为int,单位是像素
  • 当前组件在父容器中完全显示,则x和y为正数,否则超出范围,会出现负数。
  • 如果当前组件作为窗口组件独立显示,其父容器则是整个屏幕,此时是标题栏的左上顶点对应屏幕左上顶点计算
    • 此时,如果当前组件向左拖动,部分超出屏幕,其x为负值
  • 如果当前组件是非窗口组件,在其它容器组件中,比如在QWidget、QGroupBox等中,那么此时是当前组件的左上顶点与其父容器的左上顶点计算
    • 如果父容器是窗口组件,是包含标题栏部分的,而是对应主界面区域的左上顶点

(2)pos

pos(self) -> QPoint
  • 返回QPoint对象,包含x和y
  • 不存在对应的设置x和y,也不存在对应设置pos的方法。一般用move或setGeometry方法实现操作

(3)move

        move(self, QPoint)
        move(self, int, int)
  • 移动组件的位置
  • 两种调用方法,设置是相对于父组件的绝对位置

2、大小

(1)width和height

  • 返回组件的宽度和高度,类型为int,单位是像素

(2)size

  • 返回QSize对象,包含width和height数据

(3)setBaseSize

setBaseSize(self, basew: int, baseh: int)
setBaseSize(self, s: QSize)
  • 设置初始的尺寸

(4)resize

resize(self, a0: QSize)
resize(self, w: int, h: int)
  • 改变组件尺寸,即设置组件的width和height属性
  • 可以在show方法前初始化,也可以之后再调用
  • 注意,并不存在直接设置width和height的方法

setBaseSize貌似无效果,一般未使用

(5)hint相关

  •  在 widget 有 layout 的情况下,其 sizeHint() 函数返回的是有效值作为其自身实际尺寸的参考;
  • sizeHint() 返回的值并不一定会作为 widget 的实际尺寸,因为 widget 的尺寸的决定还有其它因素作用;

(6)变化范围

# 最大宽度和高度
setMaximumWidth(self, maxw: int)
setMaximumHeight(self, maxh: int)
setMaximumSize(self, maxw: int, maxh: int)
setMaximumSize(self, s: QSize)
# 最小宽度和高度
setMinimumWidth(self, minw: int)
setMouseTracking(self, enable: bool)
setMinimumSize(self, minw: int, minh: int)
setMinimumSize(self, s: QSize)
# 固定宽度和高度,不可变
setFixedWidth(self, w: int)
setFixedHeight(self, h: int)
setFixedSize(self, a0: QSize)
setFixedSize(self, w: int, h: int)

(7)geometry几何

frameGeometry(self) -> QRect
geometry(self) -> QRect
normalGeometry(self) -> QRect
restoreGeometry(self, geometry: Union[QByteArray, bytes, bytearray]) -> bool
saveGeometry(self) -> QByteArray
setGeometry(self, a0: QRect)
setGeometry(self, ax: int, ay: int, aw: int, ah: int)
updateGeometry(self)
  • QRect包含x和y,width和height数据