全能電路設計實戰

2015年8月28日 星期五

Raspberry Pi 上的 Python 筆記 -- Tkinter


之前一開始學 Python 的時候就接觸過有關 GUI 的開發,不過那個時候因為還是程式語言初學者,連類別都還沒搞懂,想當然爾就不了了之。 最近則是要在 Raspberry Pi 上面用 GUI 介面的操作設計出來的系統,所以才又重新把目光放到Python的GUI函示庫。

上網找了一下,Python 大概有常見的GUI Framework 為  Tkinter、wxPython、pyQt 這三個。當初學的是 wxPython ,感覺還蠻簡單好用的。但就初學者而言,還是建議從 Tkinter 開始學起,因為其架構簡單好學,缺點就是功能上較沒有其他兩套這麼豐富,但就要建構一個簡單的像是控制系統而言,已經足夠了。而且是 Python 的標準套件庫,直接支援 Python2 和 Python3 ,安裝也較簡單,有時候甚至已經內建在其中了。

不過廢話不多說,下面就開始第一個連 Hello World 都不算是的範例程式碼:
-----------------------
-----------------------
先來看第一行程式碼

root = tk.Tk()

tk.Tk() 會回傳一個物件代表這個程式的主視窗,而我的習慣取名為 root 。這個主視窗物件有一個 .mainloop() 的method ,呼叫之後程式的進行就會進入一個無窮迴圈,並且卡在這裡,同時畫面上就會跳出來一個小視窗。這個就是這個程式的主視窗。


按右上的叉叉鈕,該程式就會停止。

接下來在這個主視窗內,放進去一個按鈕元件(button)

-------------------------
-------------------------



程式碼

button = tk.Button(master=root,text="hello", command=btn_call_back)

回傳了一個按鈕物件,其中將 root 物件用 "master" 參數傳入表示將這個 Button 物件 "掛" 在主視窗物件 "root" 的下面。Tkinter 裡的物件關係架構像是一個樹狀圖,每個物件都會有一個 "上層" 物件叫 master 。最上層的主視窗 (root) 為整個樹狀結構的最上層所以不用。

text 參數傳入一個字串,當做是按鈕上面顯示出來的文字。command 參數則傳入一個 function pointer (用 C 語言的說法,之後這樣的說法就叫 "慣C" 說法好了。),只要這個Button 被按下去,就會去執行該行程式碼。

<忽然覺得好累...待續...>


沒有留言 :

張貼留言