PySide由Qt的官方團隊--Nokia Qt進行維護,集成了Qt和python的優勢。Python通過PySide調用Qt庫,開發Qt程序!Pyside應該代表著未來,而且有更Pythonic的API,比如String類型直接用Python的內置str類型,遂選擇了Pyside。

一個PySide程序員只需要使用簡單的Python語言就能夠發揮Qt的所有功能。PySide擁有LGPL2.1版授權許可,允許進行免費/開源軟件和私有商業軟件的開發。Matplotlib,PhotoGrabber,Wing IDE,Lucas Chess,Fminer等應用程序均使用PySide開發,另外,PySide Mobility工程還允許python訪問Qt Mobile API,這對你進行移動開發是很有幫助的。

配置Spyder(Python開發環境)環境需要安裝如下資源內容:

1.PyQt For Windows 4.10.3

2.Python For Windows 2.7.5

3.PySide For Windows 1.2.1

PySide 1.2.2 Py3.4:https://www.oschina.net/news/51399/pyside-1-2-2

PYQT的幾種方式

采用pyuic4把ui文件轉換為python代碼. pyside也有一個這樣的工具, 名稱是pyside-uic.(還有pyside-rcc, pyside-lupdate與pyqt對應)

代碼中動態導入, pyqt的代碼是這樣寫的:

form, base = uic.loadUiType("score.ui")

class ScoreDlg(QDialog, form):

def __init__(self):

super(ScoreDlg, self).__init__()

self.setupUi(self)

在pyside里面, 直接生成一個對象的方法:

from PySide.QtUitools import QUiLoader

loader = QUiLoader()

widget = loader.load('mywidget.ui')

widget.show()

我上pyside的maillist, 找到了動態生成的方式, 把代碼放在這里吧:

class MyQUiLoader(QUiLoader):

def __init__(self, baseinstance):

super(MyQUiLoader, self).__init__()

self.baseinstance = baseinstance

def createWidget(self, className, parent=None, name=""):

widget = QUiLoader.createWidget(self, className, parent, name)

if parent is None:

return self.baseinstance

else:

setattr(self.baseinstance, name, widget)

return widget

def loadUi(uifile, baseinstance=None):

loader = MyQUiLoader(baseinstance)

ui = loader.load(uifile)

QMetaObject.connectSlotsByName(ui)

return ui

然后, 我們就可以用loadUi來擴展一個類了:

class Inputer(QDialog):

def __init__(self):

super(Inputer, self).__init__()

loadUi('draw.ui', self)

self.leInput.returnPressed.connect(self.input)

PySide x64 For Windows(python pyside)v1.2.2 官方最新版下載地址

遠程下載