本文最初blog:
http://blog.csdn.net/myer/archive/2006/04/24/675434.aspxQt4是一个gui库,相比Qt3,在console程序的编写方面有了很大的改进。python是一个面向对象的脚本解释语言,程序非常简洁优美,二者结合必将带来效率的极大提升,python比较适合快速开发,程序测试,等等
python支持对于c/c++的扩展,例如使用swig,在安装了pyqt4后,当然就使用pyqt4使用的sip,简单、对qt的支持也非常好。
先看一个简单的例子:(本例子来源于sip文档)
头文件word.h:
class Word {
const char *the_word;
public:
Word(const char *w);
char *reverse() const;
};
编写sip文件:
word.sip
%Module word 0
class Word {
%TypeHeaderCode
#include <word.h>
%End
public:
Word(const char *w);
char *reverse() const;
};
就这么简单,你可以手动的使用sip命令来生成cpp文件,当然sip模块已经包含了更简单的方法:
编写配置模块:configure.py
import os
import sipconfig
build_file = "word.sbf"
config = sipconfig.Configuration()
os.system(" ".join([config.sip_bin, "-c", ".", "-b", build_file, "word.sip"]))
makefile = sipconfig.SIPModuleMakefile(config, build_file)
makefile.extra_libs = ["word"]
makefile.generate()
OK,运行configure.py看看吧,makefile已经生成。下面仅仅make即可。然后你就可以在自己的py程序里使用word模块了。
Qt的canvas模块是个很实用的模块,随着Qt4.0,4.1,虽然trolltech一再宣称下一版本发布,至少到目前Qt4.12还没有支持,而其发布的qtcanvas也只是一个过渡产品,在Qt4下面效率据说不怎么样。
但不管怎么样,先把qtcanva安装,并且通过sip与python绑定,由于目前PyQt4还不完善,文档更是匮乏,不过还好参考Qt3的PyCanvas,很快就编译完了。
0、前提:安装Qt4,python2.4,sip4,PyQt4,并且把qtcanvas编译为静态库
1、编写qtcanvas.sip,参照Qt3的sip文件,根据错误提示,修改部分内容即可
2、编写configure.py,由于sip自带的Qt的例子是还是针对Qt3的,所以更改部分内容:
qt_sip_flags = config.pyqt_sip_flags
makefile = pyqtconfig.QtGuiModuleMakefile (...)
makefile.extra_libs = ["qtcanvas"] #提供包装的qtcanvas.lib
3、OK,运行configure.py, make. qtcanvas.pyd(.so)产生了
4、运行make install或者copy qtcanvas.pyd到适当的目录即可。
然后马上写个例子来测试:
import sys
from PyQt4 import QtGui, qtcanvas
app = QtGui.QApplication(sys.argv)
canvas = qtcanvas.QtCanvas(800, 600)
cview = qtcanvas.QtCanvasView(canvas)
r1 = qtcanvas.QtCanvasRectangle(100, 100, 100, 100, canvas)
t1 = qtcanvas.QtCanvasText('hello world!', canvas)
r1.show()
t1.show()
cview.show()
sys.exit(app.exec_())
OK,窗口出现了,画了个矩形,还有一个‘hello world!’的文本......
Trackback:
http://tb.blog.csdn.net/TrackBack.aspx?PostId=675434[ 此贴被XChinux在2006-04-24 21:37重新编辑 ]