在QObject.__init__(self, Parent=None)
文档中声明:
父参数(如果不是None)会导致self被Qt而不是PyQt拥有。
由Qt而不是PyQt拥有是什么意思?这对开发PyQt应用程序时应该注意的行为有影响吗?
答案 0 :(得分:2)
是的,确实如此。在PyQt应用程序中创建任何对象之前,它具有效果。如果我们设置父QWidget None,我可以告诉这个QWidget是顶级窗口。我会尝试解释;
“父窗口小部件等同于窗口框架”
QMainWindow的父Widget是none。然后,由Qt而不是PyQt(或简单的词 root )拥有。 QWidget的父窗口小部件(红色)是QMainWindow,然后是QMainWindow的几何引用。 QPushButton的父Widget是QWidget(绿色),然后由QWidget(绿色)引用几何。并且所有小部件都一样......
因此,QMainWindow可以完全控制孩子的小部件。例如,如果自我删除,所有孩子也将遵循删除。等
但是,如果我们设置QWidget的父Widget(红色)是None,那就意味着这个QWidget就像新窗口一样。喜欢这张照片;
目前,我们有2个顶级窗口。但QWidget与QMainWindow独立。如果自我删除,所有孩子都会关注删除但不在QMainWindow之外。外部QWidget不能删除。因此,一些应用程序创建了许多小部件,但它将在主菜单中具有控制子级的主要小部件。
不仅是窗框,它只是示例&比较。强>
此致