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

PySide python For Windowsv1.2.2 官方最新版下載地址

遠程下載