🌟想系统化学习 GUI 编程?看看这个:[Python GUI 编程] PySide & PyQt - 学习手册-优快云博客
在后续章节中,我们将要介绍 “控件尺寸设置” 与 “控件位置设置” 相关的内容,在介绍这些内容前,我们有必要先了解一下 QWidget 控件的坐标系统以及它的位置参照。
坐标是相对于某个参照物而言的,QWidget 针对控件有无父类发展出了两套参考系。若当前控件没有父类(会自动配置为窗口控件),那么它的参考系就是整个桌面;若当前控件有父对象,则它的参考系就是它的父控件。
0x01:QWidget 控件坐标系统介绍 — 无父控件版
QWidget 的坐标系是以参考系统的左上角为坐标原点,向右为 X 轴正方向,向下为 Y 轴正方向。若当前控件无父类,则它的参考系就是整个系统桌面,如下图所示:
下面是一个示例程序,我们创建了一个空白的无父类的 QWidget 对象,并将它移动至了参考系的(100,100)的位置:
import sys
from PyQt5.Qt import *
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 控件操作
widget = QWidget() # 创建窗口对象, 无父对象,参考系就是整个桌面
widget.move(100, 100)
# 3. 展示控件
widget.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())
0x02:QWidget 控件坐标系统介绍 — 有父控件版
QWidget 的坐标系是以参考系统的左上角为坐标原点,向右为 X 轴正方向,向下为 Y 轴正方向。若当前控件有父类,则它的参考系就是它的父类,如下图所示:
下面是一个示例程序,我们创建了两个 QWidget 对象,其中 widget
是 inner_widget
的父类,我们设置了 inner_widget
到参考系的(100,100)的位置展示:
import sys
from PyQt5.Qt import *
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 控件操作
widget = QWidget() # 创建窗口对象, 无父对象,参考系就是整个桌面
widget.setStyleSheet("background-color: yellow;") # 设置窗口背景颜色
inner_widget = QWidget(widget) # 创建窗口对象, 有父对象,参考系就是父对象
inner_widget.move(100, 100)
inner_widget.setStyleSheet("background-color: red;") # 设置窗口背景颜色
# 3. 展示控件
widget.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())