【问题标题】:Why in pyqt5 should I use pyuic5 and not uic.loadUi("my.ui")?为什么在 pyqt5 中我应该使用 pyuic5 而不是 uic.loadUi("my.ui")?
【发布时间】:2019-02-27 12:21:43
【问题描述】:

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

【问题讨论】:

  • 你也可以直接使用 pyqt5 来创建你的窗口并完全避开那个 UI 生成器,而且个人而言,这会更好,因为你可以完全控制你创建的代码并且你可以避免这种情况生成器/设计器创建的丑陋代码。哦,它已经在 python 中了,不需要转换

标签: python pyqt pyqt5


【解决方案1】:

使用pyuic5 的最大原因是IDE(例如Visual Studio Code、PyCharm)不理解.ui 文件,因此除非您编译它,否则无法为您的类提供代码自省(例如小部件名称的自动完成)到 Python。

【讨论】:

    【解决方案2】:

    这两种解决方案都很好,它们各有优缺点,必须根据你想做什么来权衡,而且很多时候这取决于程序员的口味。

    pyuic5:

    • 允许继承[+]

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

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

    uic.loadUi():

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

    • 编译加时[+]

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

    • 不允许使用inspect[-]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-23
      • 2018-05-10
      • 2014-03-12
      • 2012-12-13
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多