什么是pyside?
`pyside`_ 是一个Qt4在python下面的绑定, 是PyQt4的取代. 它和PyQt4不同的地方是, 支持商业闭源应用, 以及是Qt4官方支持的.
pyside现在状况怎么样?
第一个beta版本已于2010/12/26释放. 处于火热开发中. pyside是完全跟进qt的. beta里面带有qml的支持.
如何获取pyside?
如果你用ubuntu, 加一下ppa的源就好了. 网址: https://launchpad.net/\~pyside/+archive/ppa
执行命令:
也可以去clone `pyside源码库`_.
尝试pyside
我们通过几个示例来看pyside的状况:
简单示例
一个简单的示例, pyside提供和pyqt API级别的互通, 方便pyqt用户迁移. 与pyqt代码的区别, 只在import的时候把PyQt4改成PySide就好了:
UI
看起来写代码还OK, 我们看一些其他的功能, 比如如何支持ui. 我们用qtdesigner写好了ui文件, 如何在pyside下面使用?
pyqt有几种方式:
采用pyuic4把ui文件转换为python代码. pyside也有一个这样的工具, 名称是pyside-uic.(还有pyside-rcc, pyside-lupdate与pyqt对应)
代码中动态导入, pyqt的代码是这样写的:
1 2 3 4 5 |
|
在pyside里面, 直接生成一个对象的方法:
1 2 3 4 |
|
我上pyside的maillist, 找到了动态生成的方式, 把代码放在这里吧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
然后, 我们就可以用loadUi来扩展一个类了:
1 2 3 4 5 6 |
|
QML, QML!
pyside可以和qml一起使用, 不过我对qml不熟悉, 等以后熟悉了再来修改具体的示例吧. 你可以直接看 `pyside示例代码`_ 里面关于declarative的部分.
结论
经过测试, pyside现在大致可用, 不过在一些地方会有bug, 现在是beta版本, 根据这个态势, 很快就能稳定了. 如果因为pyqt价格问题观望的同学, 现在可以下手pyside了, 也可以当当小白鼠, 为开源社区做点贡献(从我做起吧).