Python 3 Tkinter介紹:一個簡易的四則運算機(A Simple Calculator with Tkinter)

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

本教學文章會先介紹一些常用的Python GUI 套件工具,接著會用幾個範例呈現 Python Tkinter控制項元件的用法,最後會以一個簡易的四則運算機當例子作為結尾。

常見的 Python GUI 套件工具:
第一個 Python 3 Tkinter 視窗
建立Tkinter視窗有幾個步驟:
  1. 匯入 Tkinter 模組。
  2. 建立主視窗。
  3. 建立視窗控制項元件。
  4. 進入事件處理迴圈以處理不同的視窗訊息。
要建立一個空白的視窗的話,可以省略第三步驟,例如底下範例:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/usr/bin/python

# 步驟一:匯入 tkinter 模組。
import tkinter
# 步驟二:建立主視窗。
mainWin = tkinter.Tk()
# 視窗標題
mainWin.title("Hello 雲林SONG")
# 視窗大小
mainWin.geometry("320x240")
# 步驟四: 進入事件處理迴圈。
mainWin.mainloop()

執行結果如下:
練習題:
修改視窗的標題(Title)。
修改視窗的大小(Geometry)。

好,接下來開始慢慢加進一些控制項吧。

標籤 Label
Label的用法說明如下:
labelVariable = Label(主元件,參數一,參數二...)

例如若想在第一個 Tkinter 視窗增加一個標籤,語法如下:
1
2
labelVariable = tkinter.Label(mainWin, text="這是標籤")
labelVariable.pack()
詳細的參數說明可參考 https://www.tutorialspoint.com/python/tk_label.htm


按鈕 Button
Button的用法說明如下:
buttonVariable = Button(主元件,參數一,參數二...)

例如若想在第一個 Tkinter 視窗增加一個按鈕,語法如下:
1
2
buttonVariable = tkinter.Button(mainWin, text="這是按鈕")
buttonVariable.pack()
詳細的參數說明可參考 https://www.tutorialspoint.com/python/tk_button.htm

文字方塊 Entry
文字方塊的用法說明如下:
entryVariable = Entry(主元件,參數一,參數二...)

例如若想在第一個 Tkinter 視窗增加一個文字方塊,語法如下:
1
2
entryVariable = tkinter.Entry(mainWin, text="這是文字方塊")
entryVariable.pack()

詳細的參數說明可參考 https://www.tutorialspoint.com/python/tk_entry.htm

單選按鈕 RadioButton
單選按鈕的用法說明如下:
radioButtonVariable = Radiobutton(主元件,參數一,參數二...)

例如若想在第一個 Tkinter 視窗增加一個單選按鈕,語法如下:
1
2
radioButtonVariable = tkinter.Radiobutton(mainWin, text="這是單選按鈕")
radioButtonVariable.pack()

詳細的參數說明可參考 https://www.tutorialspoint.com/python/tk_radiobutton.htm

將以上的範例整合在一起的結果如下圖:

若按下按鈕程式是不會有任何動作的,這是因為還需要加上處理按鈕按下的程式碼,此部分的觀念可參考筆者的文章:程式設計師需要知道的圖形使用者介面(GUI)觀念。在 Tkinter 中,每個元件(Widget)都有command參數,以Button為例,就是設定按鈕按一下(Click)時會處理的CallBack function。本例的按鈕CallBack function如下:
1
2
3
# 按鈕 Click 事件處理函式
def btnCallBack():
    tkinter.messagebox.showinfo( "雲林SONG", "按鈕Click")

接著修改Button的參數:
1
2
# 建立按鈕
buttonVariable = tkinter.Button(mainWin, text="這是按鈕", command=btnCallBack)

此時,按下按鈕就會出現如下圖的MessageBox視窗(需要import tkinter.messagebox):

好,最後使用上述的Widget來製作一個簡易的四則運算機,UI的設計方式如下:

使用Grid manager來做UI版面的排版,此部分請參考 http://effbot.org/tkinterbook/grid.htm

程式執行影片:


程式碼:
參考資料:

沒有留言: