2

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

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

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

4

1 回答 1

4

一般规则是:

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

您可以在导入任何 PyQt4 类之前通过 using选择 API版本。 导入 PyQt4 后,可以使用查询 api 版本sip.setapi
sip.getapi

主要区别在于:

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

  • QVariant:
    不能在 v2 中实例化,变体将被转换为/从 python 类型

  • QDate, QDateTime, QTimeand QUrl:
    在 v1 中,该__hash__方法使用对象的 id,在 v2 中,它使用对象的字符串表示,因此具有相同表示的对象将返回相同的散列。

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

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

于 2013-10-14T19:20:48.120 回答