2013-10-14 42 views
2

Maya 2014支持PySide開箱即用,所以我期待從PyQt到PySide轉換我現有的所有工具(並不是很多,因爲我對PyQt編程非常新)。從PyQt4轉換到PySide

有沒有人知道一個地方,說明所有的差異?我已經閱讀了幾處討論Signals,Slots以及它們擺脫的一些對象(QString等)的區別,還有其他地方嗎?

另外,據我所知,PyQt4 API2和PySide非常相似。這裏的問題是我不確定我是否使用API​​ 1或API 2,任何人都可以說明兩者之間的區別(我在查找文檔時遇到問題)?

回答

4

的一般規則是:

  • PyQt4的上python2使用API​​ V1
  • PyQt4的上python3使用API​​第2

您可以select the API版本通過導入任何PyQt4的類之前使用sip.setapi
導入PyQt4中後,就可以查詢使用sip.getapi

API版本的主要區別是:

  • QString
    在V2不再可用,自動轉換爲unicode(PY2)或str( py3)

  • QVariant
    無法在v2中實例化,var iants將從Python類型

  • QDateQDateTimeQTimeQUrl被轉換爲/:在V1
    ,所述__hash__方法使用對象的id,在v2中,它使用該對象的 字符串表示,以便具有相同的表示對象將返回相同的散列 。

  • QTextStream
    方法需要一個可變的字符串實現(如,從QString) 沒有實現

更多差異上市here,通常QString棄用就是對現有的代碼最大的影響。 因此,如果您需要將代碼從PyQt4(API v1)移植到PySide,我會建議先使它與PyQt4(API v2)兼容。其餘的應該是改變進口報表的問題。