跳到內容

GUI 小程式

到目前為止的程式都在文字介面(終端機)裡跑。這個專題改用 Python 內建的 tkinter,做一個有視窗、輸入框、按鈕的圖形介面(GUI)。

這支程式開一個視窗,裡面有輸入框、按鈕和一個標籤。你在輸入框打名字、按下按鈕,標籤就會顯示問候語。把它存成 app.py,在終端機執行 python app.py,或用 VS Code 的執行鈕,就會跳出視窗:

import tkinter as tk
def say_hello():
name = entry.get()
label.config(text=f"你好,{name}!")
window = tk.Tk()
window.title("打招呼")
entry = tk.Entry(window)
entry.pack(padx=20, pady=10)
button = tk.Button(window, text="打招呼", command=say_hello)
button.pack(pady=10)
label = tk.Label(window, text="")
label.pack(pady=10)
window.mainloop()
  • import tkinter as tk:載入 tkinter,慣例上簡稱 tk
  • tk.Tk():建立主視窗。
  • tk.Entrytk.Buttontk.Label:分別是輸入框、按鈕、顯示文字的標籤。
  • .pack():把元件擺進視窗,tkinter 會自動幫你排版。
  • 按鈕的 command=say_hello:按下去就呼叫 say_hello。注意這裡寫的是 say_hello(沒有括號),意思是「把這個函式交給按鈕」,而不是「現在就執行它」。
  • entry.get() 拿到輸入框裡的文字;label.config(text=...) 改掉標籤顯示的內容。
  • window.mainloop():讓視窗開著、等你操作。這行一定要放在最後。
  • 加一個「清除」按鈕,把輸入框和標籤清空。
  • 讓問候語同時顯示名字的長度(提示:len(name))。