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