为什么在 pyqt5 中我应该使用 pyuic5 而不是 uic.loadUi("my.ui")?

Fra*_*ank 12 python pyqt pyqt5

我一直在试验QT5Python,使用pyqt5. 我注意到大多数教程都推荐使用pyuic5将 XML UI 转换为 Python 代码。我还看过一些教程,他们使用uic.loadUi("myui.ui")来动态加载XML UI. 这对我来说似乎是一个更简洁、更模块化的解决方案,但它似乎是一个不受欢迎的选择。是否有理由pyuic5使用更完善的解决方案来转换您的代码?

eyl*_*esc 10

两种方案都不错,各有优缺点,需要权衡你想做什么,很多时候这取决于程序员的品味。

pyuic5 :

  • 允许继承[+]

  • 运行应用程序时没有额外的负载[+]

  • 每次修改文件时将 .ui 转换为 .py [-]

uic.loadUi() :

  • 修改 .ui [+]时无需修改任何内容

  • 编译额外时间[+]

  • 不允许继承(您可以使用 实现继承uic.loadUiType()[-]

  • 不允许使用检查 [-]