我是个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_()) |
|