Maya 2014开箱即用支持PySide,因此我希望将所有现有工具(从PyQt编程起来并不多)转换为PyQt到PySide。
有没有人知道一个说明所有差异的地方?我已经阅读了几个地方谈论信号,插槽和他们摆脱的一些对象(QString等)的差异,还有什么吗?
另外,我知道PyQt4 API2和PySide非常相似。这里的问题是我不确定我是使用API 1还是API 2,任何人都可以说明两者之间的区别(我在查找文档时遇到了麻烦)?
答案 0 :(得分:4)
一般规则是:
在导入任何PyQt4类之前,您可以select the API使用sip.setapi
版本
导入PyQt4后,您可以使用sip.getapi
主要区别是:
QString
:
在v2中不再可用,自动转换为unicode
(py2)或str
(py3)
QVariant
:
无法在v2中实例化,变体将转换为/来自python类型
QDate
,QDateTime
,QTime
和QUrl
:
在v1中,__hash__
方法使用对象的id,在v2中它使用对象的id
字符串表示,所以具有相同表示的对象将返回
相同的哈希。
QTextStream
:
需要可变字符串实现的方法(例如QString)
没有实施
列出了更多差异here,通常,QString
的弃用对现有代码的影响最大。
因此,如果您需要将代码从PyQt4(API v1)移植到PySide,我建议首先使它与PyQt4(API v2)兼容。其余的应该是改变进口声明。