从PyQt4转换为PySide

时间:2013-10-14 06:40:25

标签: python-2.7 pyqt4 pyside maya

Maya 2014开箱即用支持PySide,因此我希望将所有现有工具(从PyQt编程起来并不多)转换为PyQt到PySide。

有没有人知道一个说明所有差异的地方?我已经阅读了几个地方谈论信号,插槽和他们摆脱的一些对象(QString等)的差异,还有什么吗?

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

1 个答案:

答案 0 :(得分:4)

一般规则是:

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

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

查询api版本

主要区别是:

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

  • QVariant
      无法在v2中实例化,变体将转换为/来自python类型

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

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

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