引言
最近在学习 Python GUI 开发,选择了比较通用的 PySid6 框架,这里记录一下关于控件显示的问题。
教程新建(实例化)一个控件时,若没有指定 parent,即父控件,就默认不显示,除非你手动调用该控件的 show 方法。
如果你新建控件时,指定了 parent,则当父控件显示后,子控件会自动跟着跟着显示, 而无需手动调用 show 方法。
新建一个 QWidget 类的控件 win,未指定 parent,需要调用 show 方法才能显示。
from PySide6.QtWidgets import QApplication, QWidget
if __name__ == "__main__":
app = QApplication()
win = QWidget()
win.show()
app.exec()
接下来,又新建一个按钮控件 btn,绑定一个父控件 win,执行程序发现,当 win 控件调用 show 方法时,btn 控件也会跟随显示。
from PySide6.QtWidgets import QApplication, QWidget, QPushButton
if __name__ == "__main__":
app = QApplication()
win = QWidget()
btn = QPushButton(parent=win)
win.show()
app.exec()
说这个的意思呢,就是提醒大家在主窗口(Main Window)中调用对话框(Dialog)时别忘了给对话框设置 parent,或者直接调用 show 方法,不然就会出现对话框无法显示的问题。
https://www.bilibili.com/video/BV1iD4y1D7C8
