python - 在没有 python 中的所有样板的情况下从 QUiLoader 加载是否安全?
问题描述
我是一名尝试 python gui 开发(python 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 的垃圾收集,较短的版本可以安全使用吗?这种方法有什么缺点吗?
谢谢!
解决方案
实际上没有问题,因为 GC 将在加载小部件后完成其范围后将其删除。
唯一的缺点是您只会加载一个小部件,但如果您有一个 QUiLoader 实例,您可以从其他 .ui 加载多个小部件。也许你经常看到它,因为它出现在PySide2 的文档中,这是基于Qt 的文档 ,没有类似于短版本的版本。
推荐阅读
- visual-studio-code - 如何解决远程uri中的~(home)?
- google-bigquery - 将总和加入到最近的时间戳一次直到间隔上限
- python - 在 pandas 中创建新列以存储单独的值
- android - DrawableCompat.setTint() 是懒惰的吗?
- python - 为什么程序不能正确搜索丢番图方程的通解
- netsuite - 通过 ID 调用 SavedSearch 的示例 Soap 消息
- date - 如何在 Google Data Studio 中显示单个日期?
- javascript - vuejs 根据组件的子级计算值
- c# - 转换: Struct --> byte[] --> String --> byte[] --> Struct 给出不正确的浮点值
- javascript - 替换特定模式的子字符串