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)




