父子关系扩充
常用API
-
childAt(x, y)函数可以根据传入的坐标参数获取该QWidget中位于该坐标位置的子QWidget,如果该位置没有子QWidget则返回None。 -
parentWidget()函数可以获取当前QWidget的父QWidget,如果没有父QWidget则返回None。通过这个函数可以遍历组成QWidget树的所有QWidget。 -
childrenRect()函数可以获取该QWidget中所有子QWidget的组合边界矩形(bounding rectangle),该矩形包括所有子QWidget的位置和大小。可以利用这个函数来计算一个QWidget内所有子QWidget的相对位置和大小,方便进行布局和重绘。
以下为API的使用示例:
from PyQt5.QtWidgets import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.resize(500, 500)
# 创建三个标签
label = QLabel(window)
label.setText('标签1')
label.move(50, 50)
label2 = QLabel(window)
label2.setText('标签1')
label2.move(100, 100)
label3 = QLabel(window)
label3.setText('标签1')
label3.move(150, 150)
window.show()
print(window.childAt(55, 55)) # 获取55,55的位置的子QWidget
print(label2.parentWidget()) # 获取父Qwidget
PyQt5中QWidget父子关系与层级控制实例,

本文介绍了如何在PyQt5中使用childAt(),parentWidget(),childrenRect()等API进行父子关系操作,以及lower(),raise_(),stackUnder()等方法进行控件层级控制。通过实例展示了如何根据鼠标点击改变标签层级和背景颜色。
最低0.47元/天 解锁文章
703

被折叠的 条评论
为什么被折叠?



