在没有所有python样板的情况下从QUiLoader加载是否安全?

时间:2018-12-18 18:23:56

标签: python pyside2

我是一名业余爱好者,正在尝试python gui开发(py​​thon 3,PySide2,QtDesigner)。我的代码工作正常,我想了解一些更好的东西。

所有教程都像这样(在构造函数中)加载ui:

from PySide2.QtUiTools import QUiLoader
...
# in the constructor
    loader = QUiLoader()
    file = QFile(self.__resource('the_ui_file.ui'))
    file.open(QFile.ReadOnly)
    self.ui = loader.load(file, None)
    file.close()

但是,它同样有效:

self.ui = QUiLoader().load('the_ui_file.ui')

鉴于python的垃圾回收,较短版本可以安全使用吗?这种方法有什么缺点吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

实际上没有问题,因为GC会在完成其作用域(即加载小部件)后将其删除。

唯一的缺点是,您只会加载单个窗口小部件,但是如果您有QUiLoader实例,则可以从其他.ui加载多个窗口小部件。也许您会看到很多,因为它用在the docs of PySide2中,并且它基于docs of Qt,而该版本的版本与简短版本不同。