Python使用Qt的UI文件

我是个PHP程序员,不过有时候觉得需要写些小软件,对于我这种不太熟悉桌面软件开发的人来说,界面问题最让我头痛。听说Qt很强大,而且是跨平台,所以决定学习它用来弥补我写桌面软件的不足。

Qt一般是通过C++来调用,如果要让Python支持Qt,需要下载PyQt这个库,十几M大小,安装后就可以让Python支持部分Qt功能。

在完整版Qt的Demo中,一般都是程序与界面分开,界面代码被写在.ui后缀的XML文件中,而程序只需要调用UI文件和写处理事件就行,实现代码与界面分离。而且ui文件可以用Qt Designer这个工具设计复杂的界面,这个工具在安装PyQt后就会有,而且使用方便。

查过Qt手册,发现读取UI文件功能是通过QtUiTools模块来完成,但PyQt却没有这个类,所以无法直读UI文件。找到唯一利用UI的方法,是通过pyuic4指令进行转换,格式如下:
pyuic4 -o ui_xxx.py xxx.ui
pyuic4可以把ui文件转换为python的界面代码,这样python就可以利用强大的Qt Designer设计界面。

调用代码如下:
代码
#-*- coding: gbk -*-

#加载有需要的Qt库
from PyQt4 import QtCore, QtGui

#从ui_test.py文件中读取Ui_Dialog类,Ui_Dialog类由pyuic4生成
from ui_test import Ui_Dialog

#继承的类要和生成的ui对相
class Ui(QtGui.QDialog):
def __init__(self, parent=None):
super(Ui, self).
__init__(parent)

self.ui 
= Ui_Dialog()

self.ui.setupUi(self)

if __name__ == '__main__':
import sys

app 
= QtGui.QApplication(sys.argv)
window 
= Ui()
window.show()
sys.exit(app.exec_())

 

posted @ 2009-12-31 16:48  猫之良品  阅读(16437)  评论(1编辑  收藏  举报