1、软件安装
软件包有以下几种:
Qt,Python,Eric,PyQt
都很容易在网上下载,我就不详说了。特别要注意版本的对应。而且eric,pyqt都会在python\Lib\site-packages下生成目录,所以这两个的安装不要自定义安装路径。
官方提示,安装Eric要有以下组件:
当双击Eric目录的install.py时,出现下图:
2、集成PyQt到Eclipse
在eclipse中下载pydev
详细步骤可参照:http://blog.csdn.net/shibixiao/article/details/7572921
不过得强调,在下载pydev时,要去掉“只显示最新版本复选框”,保证所下版本与python版本一致!!
配置时,要注意在Force builtin里添加如下符号:
PyQt4.QAxContainer,PyQt4.Qsci,PyQt4.Qt,PyQt4.QtCore,PyQt4.QtDeclarative,PyQt4.QtDesigner,PyQt4.QtGui,PyQt4.QtHelp,PyQt4.QtMultimedia
PyQt4.QtNetwork,PyQt4.QtOpenGL,PyQt4.QtScript,PyQt4.QtScriptTools,PyQt4.QtSql,PyQt4.QtSvg,PyQt4.QtTest,PyQt4.QtWebKit,PyQt4.QtXml
PyQt4.QtXmlPatterns,PyQt4.phonon,PyQt4.uic
3、测试
- 用designer作一个简单的widget,给Quit按钮添加一个信号槽
编写python代码:
import sys from PyQt4 import QtCore,QtGui,uic from hello_ui import Ui_Form app = QtGui.QApplication(sys.argv) widget = uic.loadUi('hello.ui') widget.show() sys.exit(app.exec_())注意文件后缀名是为pyw,双击即可出现窗体。单击按钮会执行槽函数退出。如果没反应,需检查代码或环境变量设置是否正确
- 不用ui文件,直接编写进度条示例:
import sys from PyQt4 import QtCore,QtGui class MyProgressBar(QtGui.QWidget): def __init__(self,parent=None): QtGui.QWidget.__init__(self) # python变量分为类变量和对象变量,凡是被self所引用的都是对象变量, # 是对象私有的,类对象是公有的。所以self不能省 self.setGeometry(300,300,250,150) self.pbar = QtGui.QProgressBar(self) self.pbar.setGeometry(30,40,200,25) self.btn = QtGui.QPushButton('Start',self) self.btn.setFocusPolicy(QtCore.Qt.NoFocus) self.btn.move(40,80) self.connect(self.btn,QtCore.SIGNAL('clicked()'),self.onStart) self.timer=QtCore.QBasicTimer() self.step = 0 def timerEvent(self,event): if self.step >= 100: self.timer.stop() return self.step = self.step+1 self.pbar.setValue(self.step) def onStart(self): if self.timer.isActive(): self.timer.stop() self.btn.setText('start') else: self.timer.start(100,self) self.btn.setText('stop') app = QtGui.QApplication(sys.argv) w = MyProgressBar() w.show() sys.exit(app.exec_())双击运行即可
- 在eclipse下运行一个示例:
如果熟悉Qt,那对于以上用python写的代码就没什么理解难度了。方法名都一样,形式上不一样而已。
参考网址:
PyQt学习文档:http://download.csdn.net/detail/baiwfg2/7531499
http://blog.csdn.net/achan2090/article/details/6293565