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 官方最新版下载地址


远程下载