PyQt4配置與初學
1、軟件安裝
軟件包有以下幾種:
Qt,Python,Eric,PyQt
都很容易在網上下載,我就不詳說了。特別要注意版本的對應。而且eric,pyqt都會在python\Lib\site-packages下生成目錄,所以這兩個的安裝不要自定義安裝路徑。
官方提示,安裝Eric要有以下組件:
當雙擊Eric目錄的install.py時,出現下圖:
2、集成PyQt到Eclipse
在eclipse中下載pydev
詳細步驟可參照:https://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學習文檔:https://download.csdn.net/detail/baiwfg2/7531499
https://blog.csdn.net/achan2090/article/details/6293565
https://www.2cto.com/kf/201110/106640.html
https://schi.iteye.com/blog/507822
最後更新:2017-04-03 07:57:13