当前位置: 首页 PyQt5控件基类QWidget 控件之间的父子层级关系
add-vip

控件之间的父子层级关系

控件之间的父子层级关系也是对前几节课内容的深入讲解,我们通过一些PyQt5提供的api方法来自由控制控件的继承关系,还可以让控件的展示层级进行调整。

一、控件父子层架关系


    app = QApplication(sys.argv)
    window = Window()

    label1 = QLabel(window)
    label1.setText('标签1')

    label2 = QLabel(window)
    label2.setText('标签2')
    label2.move(50, 50)

    label3 = QLabel(window)
    label3.setText('标签3')
    label3.setStyleSheet('background-color:green')
    label3.move(100, 100)

    print(label1)
    print(label2)
    print(label3)
    print('========')
    print(window.childAt(110, 110))
    print('========')
    print(window)
    print(label3.parentWidget())

    print(window.childrenRect())

    window.show()
    sys.exit(app.exec_())


二、控件展示调整


# 同级控件中后创建的控件会覆盖先创建的控件
lower()  将控件放在最底层
raise_()  将控件放到最上层
a.stackUnder(b)  将a放到b的下面


from PyQt5.Qt import *
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("控件层级关系 - PyQt5中文网")
        self.resize(600, 500)
        self.func_list()

    def func_list(self):
        self.func()

    def func(self):
        pass


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()

    label1 = QLabel(window)
    label1.setText('标签1')
    label1.resize(100, 100)
    label1.move(50, 50)
    label1.setStyleSheet('background-color:green')

    label2 = QLabel(window)
    label2.setText('标签2')
    label2.resize(100, 100)
    label2.move(80, 80)
    label2.setStyleSheet('background-color:red')

    # label2.lower()
    # label1.raise_()
    label2.stackUnder(label1)

    window.show()
    sys.exit(app.exec_())


相关文章