控件之间的父子层级关系
控件之间的父子层级关系也是对前几节课内容的深入讲解,我们通过一些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_())