我作Python窗口界面編程時,常常使用PyQt進行設計。這裏簡單敘述一下使用PyQt5製做一個簡單的圖形界面的流程html
PyQt的簡介以及開發環境的搭建在此很少贅述。python
1. 打開Qt Designer,新建一個Dialog Without Buttons編程
2. 從左側的Widget Box拖入一個Label,一個Text和一個Buttonapp
3. 雙擊控件能夠改變其上的文本函數
4. 保存文件,命名爲test.ui測試
5. 使用pyuic5將.ui文件轉換爲.py文件。方法:打開命令提示符,進入test.ui所在文件目錄,輸入命令pyuic5 test.ui –o test.py並執行(若是使用的是pyqt4的話,前面輸入的就應當是pyuic4),執行完成後會看到一個python腳本文件test.py網站
6. 生成完整的GUI程序。打開生成的test.py文件,此時若是直接運行是不能生成GUI界面的,須要添加一些代碼才能運行。首先在文件開頭添加「import sys」。而後在文件末尾添加主函數:ui
「url
if __name__=='__main__':spa
app=QtWidgets.QApplication(sys.argv)
Form=QtWidgets.QWidget()
ui=Ui_Dialog()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
」
我在作PyQt生成第一個界面的時候,借鑑了PyQt4的GUI添加方法http://jingyan.baidu.com/article/a3761b2ba2b8581576f9aa98.html,可是在測試時發現PyQt4的要寫的代碼與PyQt5在一處有所不一樣。上面百度經驗的網站上寫的須要添加的代碼有一行是「Form=QtGui.QWidget()」。但據我測試,使用pyqt5的話那一行代碼應該改成「Form=QtWidgets.QWidget()」。
添加完成後再運行就能夠看到GUI界面了,按照以前所寫的,GUI界面上應該有一Label,一個Line Edit和一個Button。
這樣就完成了一個簡單的Python GUI程序了。
7. 添加事件。添加的內容是按下按鈕後,Label上的文本變成Lie Edit裏面輸入的內容。首先在Ui_Dialog類的SetupUi方法中添加代碼「self.pushButton.clicked.connect(self.A)」,意思是按下按鈕後執行Ui_Dialog類的方法「A」。而後在Ui_Dialog中添加方法「A」:
「
def A(self,Dialog):
try:
EditText=self.lineEdit.text()
_translate = QtCore.QCoreApplication.translate
self.label.setText(_translate("Dialog", EditText))
except:
print(sys.exc_info())
」
運行程序的效果是:在Line Edit上輸入一些內容,按下按鈕,Label上的文本就會變爲LineEdit上輸入的內容。
另外,編寫Python的GUI代碼時,最好每一個函數都加入try-except異常處理。由於若是GUI程序拋出未經處理的異常(好比NameError),每每並不會在控制檯上顯示「Traceback…File X,Line X …XXXError…」的錯誤信息,而是圖形界面卡死彈出Pythonw.exe已中止工做的消息,這樣很是不利於調試。
8. 最後,我在學PyQt時常常上的網站:
http://zetcode.com/gui/pyqt5/
這個網站雖然是全英文的,可是內容仍是很詳細的
另外,PyQt5的安裝包裏面有自帶教程,裏面詳細介紹了不少的控件類及其使用方法,路徑爲<</span>安裝包路徑>\doc\html
http://blog.sina.com.cn/s/blog_15d207b300102xi5t.html