gpt4 book ai didi

python - PyQt - 小部件的父级 - 有必要吗?

转载 作者:行者123 更新时间:2023-12-01 23:12:45 26 4
gpt4 key购买 nike

我尝试使用一些小部件创建 GUI,所有这些小部件都没有指定父级。
它工作得很好。

这是好的,还是有理由指定 parent ?

谢谢!

最佳答案

一般来说,最好尽可能指定父对象,因为它可以帮助避免对象清理问题。这在退出程序时最常见,此时 python 垃圾收集器的固有随机性可能意味着对象有时会以错误的顺序被删除,从而导致程序崩溃。

然而,这个问题的发现通常不会影响标准的 GUI 小部件,因为一旦将它们添加到布局中,Qt 会自动重新设置它们的父级。更成问题的对象是与 View 密切相关的项目模型、项目委托(delegate)、图形场景等。

理想情况下,一个 pyqt 程序应该有一个根窗口,所有其他对象都以父子层次结构连接到它。当根被删除/关闭时,Qt 也会递归地删除它的所有子对象。这应该只留下 pyqt 包装器对象,它们可以安全地留给 python 垃圾收集器进行清理。

指定 parent 的一个更具 build 性的好处是,它只是使对象更容易被彼此访问。例如,一个常见的习惯用法是通过其父级迭代一组按钮:

    for button in parent.findChildren(QAbstractButton):
print(button.text())

关于python - PyQt - 小部件的父级 - 有必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35782474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com