1、软件安装
软件包有以下几种:
Qt,Python,Eric,PyQt
都很容易在网上下载,我就不详说了。特别要注意版本的对应。而且eric,pyqt都会在python\Lib\site-packages下生成目录,所以这两个的安装不要自定义安装路径。
官方提示,安装Eric要有以下组件:
当双击Eric目录的install.py时,出现下图:
2、集成PyQt到Eclipse
在eclipse中下载pydev
详细步骤可参照:http://blog.youkuaiyun.com/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.youkuaiyun.com/detail/baiwfg2/7531499
http://blog.youkuaiyun.com/achan2090/article/details/6293565