Tuesday, October 21, 2008

[Python]初探PyQt (1)

因为需要做demo的缘故,要搞一个GUI来显示一些东东。纯粹编程语言的话我肯定是首选Python。但Python的GUI编程我很不熟。很久很久以前用过tkinter来做,感觉不好,widget资源太少。最近用了很多基于Qt平台的东西,包括qterm,以及Python最强大的IDE eric。感觉Qt平台很漂亮资源也很丰富。所以就搞基于Qt的了。Qt是跨操作系统的一个图形界面平台,是挪威Trolltech 公司的产品。但是它提供免费的开源版本可以使用。著名的KDE桌面环境就是基于Qt开发的。Qt是使用C++的,可现在也有很多基于其它语言的binding(应该翻译成绑定么?),比如基于Python的PyQt和基于Ruby的RubyQt。PyQt就是我打算使用的。它允许我们在Python环境里调用Qt平台的API。

在Ubuntu上安装PyQt很简单,只要 apt-get install python-qt4就可以了。
在Mac上安装要稍微复杂一些,首先安装Qt4.你可以直接从源码安装,也可以port安装
port install qt4-mac
然后编译安装sip,最后才能编译安装PyQt

然后就可以上手了, 这里有一个很不错的PyQt的tutorial: http://zetcode.com/tutorials/pyqt4/。 同时你可以看到QtGui的所有widget: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qtgui.html



QWidget(parent) 初始化控件时候可以指定该控件的parent.这样在parent被delete的时候,该控件也一同被delete
setGeometry(x,y,width, height). (x,y)是控件左上角坐标 -- (0,0)是左上角, width和height是控件的宽和高.
resize(width, height) 设定控件的大小
setFrameStyle(QtGui.QFrame.Box | QtGui.QFrame.Raised) 设定frame周围边框样式
QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('cleanlooks')) Typically they include "windows", "motif", "cde", "plastique" and "cleanlooks". Depending on the platform, "windowsxp", "windowsvista" and "macintosh" may be available.

(待续)

No comments: