【題記】html
我是一個菜鳥,這個系列是個人學習筆記。python
PyQt5 出來有一段時間了, PyQt5 較之 PyQt4 有一些變化,而網上流傳的幾乎都是 PyQt4 的教程,照搬的話大多會出錯。編程
eric6 也是剛剛出來,eric6 與 PyQt5 結合的教程網上幾乎沒有。windows
本人也是一邊學習,一邊摸索,並記錄與此,但願幫到有須要的朋友,更但願路過的大俠多多指教爲好。app
【引子】學習
用 eric6 與 PyQt5 結合,很是方便的實現界面與邏輯分離,知足python的極速GUI編程,你只須要關注程序的邏輯實現,不須要在界面上花不少時間。ui
能夠說這是一對完美的組合!spa
下面的內容基於:windows 7 + python 3.4.2 + PyQt5 + eric 63d
【概覽】code
本文實現以下的程序:
主要步驟以下:
一、在eric6中新建項目
二、進入PyQt5 Desinger編輯圖形界面(自動進入),並保存
三、回到eric 6將剛纔的界面文件編譯
四、而後給界面添加本身的程序邏輯
五、py2exe打包成exe文件(此步略)
【正文】
一、在eric6中新建項目
二、進入PyQt5 Desinger編輯圖形界面(自動進入),並保存
在窗體中添加一個文本標籤(label)、兩按鈕(pushButton)
設置文本標籤、兩按鈕的對象名(objectName)爲:label_hello,pushButton_ok,pushButton_close
設置文本標籤、兩按鈕的文字(text)爲:"在此顯示","肯定","退出"
給退出按鈕添加信號/槽 (注:信號/槽機制是PyQt獨有的信號傳遞機制,使用很是方便)
保存,而後關閉PyQt Designer
三、回到eric 6,將剛纔的界面文件編譯
回到eric 6後,發現窗體下多了個hello.ui文件,此文件本質是一個xml格式文件,不能被運行,須要右擊它,選擇 編譯窗體
編譯成功以後,發現源文件下多出了Ui_hello.py文件,這個文件就能夠運行了
試着運行它,如圖:
Wow! 界面出來了。一切正常。不過你會發現,只有退出按鈕起做用,而肯定按鈕沒反應。那是由於咱們還沒給肯定按鈕添加邏輯代碼
這事好辦,到窗體下右擊hello.ui文件,選擇 生成對話框代碼
此處勾選pushButton下的on_pushButton_ok_clicked()
回到源代碼下,發現又多出了一個hello.py文件
無論三七二十一,先運行它再說。呀!錯誤!!!
這個錯誤應該是eric 6的一個bug!!!,去掉Ui前面的點號,再運行,就沒有報錯了。真是太好了!誒,等一下,怎麼沒看到窗體出來呢?
少了幾行代碼,此處能夠認爲也是eric 6的一個bug。那就本身動手吧,在hello.py的最下面添加這幾行:
1
2
3
4
5
6
7
|
if
__name__
=
=
'__main__'
:
import
sys
from
PyQt5.QtWidgets
import
QApplication
app
=
QApplication(sys.argv)
dlg
=
Hello()
dlg.show()
sys.exit(app.exec_())
|
長噓一口氣,窗體終於又出來了,可是點擊肯定按鈕的時候報錯了又。緣由很簡單,咱們尚未覆寫給肯定按鈕的邏輯代碼
把原來的代碼刪除,修改成一句。沒錯,咱們的邏輯代碼就是一句代碼:
1
2
3
|
@pyqtSlot
()
def
on_pushButton_ok_clicked(
self
):
self
.label_hello.setText(
'Hello world!'
)
|
保存一下,而後運行。OK,大功告成!
最後的話,eric + pyqt 進行python的gui編程真的是太方便了,只須要關注邏輯實現就能夠了
(一個字一個字敲,一張圖一張圖截,終於完成了。歡迎轉載,不過請保留做者名及原文連接。)
http://www.cnblogs.com/hhh5460/p/4232086.html
https://wiki.python.org/moin/IntegratedDevelopmentEnvironments