【问题标题】:Converting from PyQt4 to PySide从 PyQt4 转换为 PySide
【发布时间】:2013-10-15 03:20:48
【问题描述】:

Maya 2014 支持开箱即用的 PySide,因此我希望将我现有的所有工具(不是很多,因为我对 PyQt 编程很陌生)从 PyQt 转换为 PySide。

有谁知道能说明所有差异的地方吗?我已经阅读了一些地方,讨论了关于信号、插槽以及他们摆脱的一些对象(QString 等)的差异,还有其他的吗?

另外,我知道 PyQt4 API2 和 PySide 非常相似。这里的问题是我不确定我使用的是 API 1 还是 API 2,任何人都可以说明两者之间的区别(我很难找到这方面的文档)?

【问题讨论】:

    标签: python-2.7 pyqt4 pyside maya


    【解决方案1】:

    一般规则是:

    • python2 上的 PyQt4 使用 API v1
    • python3 上的 PyQt4 使用 API v2

    您可以在导入任何 PyQt4 类之前使用sip.setapi 进行select the API 版本。
    导入PyQt4后,可以使用sip.getapi查询api版本

    主要区别在于:

    • QString:
      v2 中不再可用,自动转换为 unicode (py2) 或 str (py3)

    • QVariant:
      无法在 v2 中实例化,变体将转换为 Python 类型/从 Python 类型转换

    • QDateQDateTimeQTimeQUrl:
      在 v1 中,__hash__ 方法使用对象的 id,在 v2 中它使用对象的 字符串表示,因此具有相同表示的对象将返回 相同的哈希值。

    • QTextStream:
      需要可变字符串实现的方法(例如 QString) 没有实现

    列出了更多差异here,通常QString 的弃用对现有代码影响最大。 因此,如果您需要将代码从 PyQt4 (API v1) 移植到 PySide,我建议首先使其与 PyQt4 (API v2) 兼容。其余的应该是更改导入语句的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 2020-08-03
      • 2017-04-14
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      相关资源
      最近更新 更多