021-QObject-对象的父子关系-对Qt控件的影响

左手的ㄟ右手 2023-07-07 05:44 92阅读 0赞

资源:Python-GUI-PyQ5总概述.xmind;QObject.xmind


一、应用场景

(1)如果一个控件,没有任何父控件,那么就会被当成顶层控件:多个顶层窗口相互独立

(2)如果想要一个控件被包含在另外一个控件内部,就需要设置父子关系,其显示位置、生命周期受父控件约束。


二、案例

(1)创建两个独立的窗口

要求:设置不同的标题“社会我顺哥”、“人狠话不多”。

涉及知识点:创建窗口、设置窗口标题。

  1. from PyQt5.Qt import *
  2. if __name__ == '__main__':
  3. import sys
  4. app = QApplication(sys.argv)
  5. win1=QWidget()
  6. win1.setWindowTitle("社会我顺哥")
  7. win1.setStyleSheet("background-color:red")
  8. win1.show()
  9. win2=QWidget()
  10. win2.setWindowTitle("人狠话不多")
  11. win2.setStyleSheet("background-color:green")
  12. win2.show()
  13. sys.exit(app.exec_())

(2)创建一个窗口,包含另外两个子控件QWidget

要求:两个子控件必须在同一个窗口内部。

涉及知识点:控件的父子关系。

  1. from PyQt5.Qt import *
  2. if __name__ == '__main__':
  3. import sys
  4. app = QApplication(sys.argv)
  5. win1=QWidget()
  6. win1.setStyleSheet("background-color:red")
  7. win1.show()
  8. win2=QWidget()
  9. win2.setStyleSheet("background-color:green")
  10. win2.setParent(win1)
  11. win2.show()
  12. win2.resize(100,100)
  13. sys.exit(app.exec_())

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMDc4MDMx_size_16_color_FFFFFF_t_70


(3)创建一个窗口,包含多个子控件QWidget和QLabel

要求:要让所有QLabel类型子控件设置背景颜色为cyan,即使后续再添加新的QLabel子控件。

涉及知识点:控件的父子关系设置、获取一个控件的子控件、样式设置。

  1. from PyQt5.Qt import *
  2. if __name__ == '__main__':
  3. import sys
  4. app = QApplication(sys.argv)
  5. win_root=QWidget()
  6. label1=QLabel()
  7. label1.setText("Label1")
  8. label1.setParent(win_root)
  9. label2 = QLabel()
  10. label2.move(50,50)
  11. label2.setText("Label2")
  12. label2.setParent(win_root)
  13. btn=QPushButton(win_root)
  14. btn.move(100,100)
  15. btn.setText("btn")
  16. win_root.show()
  17. for sub_widget in win_root.findChildren(QLabel) :
  18. print(sub_widget)
  19. sub_widget.setStyleSheet("background-color:cyan")
  20. sys.exit(app.exec_())

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMDc4MDMx_size_16_color_FFFFFF_t_70 1

发表评论

表情:
评论列表 (有 0 条评论,92人围观)

还没有评论,来说两句吧...

相关阅读