PySide 项目的目的是提供一个 LGPL 的 Python 绑定 Qt 开发平台,PySide项目提供了Qt的LGPL授权的Python绑定。它还包括完整的工具链迅速生成绑定任何基于Qt的C + +类的层次结构。PySide Qt绑定允许免费的开源软件和专有软件的开发,最终的目标是支持Qt的平台。
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)
...
配置Spyder(Python开发环境)环境需要安装如下资源内容:
1.PyQt For Windows 4.10.3
3.PySide For Windows 1.2.1
∨ 展开