PySide 項目的目的是提供一個 LGPL 的 python 綁定 Qt 開發(fā)平臺,PySide項目提供了Qt的LGPL授權的Python綁定。它還包括完整的工具鏈迅速生成綁定任何基于Qt的C + +類的層次結(jié)構。PySide Qt綁定允許免費的開源軟件和專有軟件的開發(fā),最終的目標是支持Qt的平臺。
{insd m="2" i="15784"}
PYQT的幾種方式
采用pyuic4把ui文件轉(zhuǎn)換為python代碼. pyside也有一個這樣的工具, 名稱是pyside-uic.(還有pyside-rcc, pyside-lupdate與pyqt對應)
代碼中動態(tài)導入, 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, 找到了動態(tài)生成的方式, 把代碼放在這里吧:
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)
...
配置Spyder(Python開發(fā)環(huán)境)環(huán)境需要安裝如下資源內(nèi)容:
1.PyQt For Windows 4.10.3
2.Python For Windows 2.7.5
3.PySide For Windows 1.2.1





