GUI(Graphical User Interface,圖形使用者介面)就是讓程式可以透過「視覺化的方式」和使用者互動,而不是只在黑底的終端機輸入指令。
常見的 GUI 元件包括:
在 Python 裡,最常見的 GUI 工具就是 tkinter(內建,不需要額外安裝)
import tkinter as tk
# 建立主視窗
window = tk.Tk()
window.title("GUIGUI")
window.geometry("300x200") # 設定視窗大小
# 啟動 GUI 事件迴圈
window.mainloop()
執行後會跳出一個小視窗。
import tkinter as tk
def say_hello():
user_name = entry.get() # 讀取輸入框文字
label.config(text=f"Hello, {user_name}!")
# 視窗
window = tk.Tk()
window.title("GUIGUI")
window.geometry("300x200")
# 標籤
label = tk.Label(window, text="輸入名字:")
label.pack(pady=10)
# 輸入框
entry = tk.Entry(window)
entry.pack()
# 按鈕
button = tk.Button(window, text="打招呼", command=say_hello)
button.pack(pady=10)
window.mainloop()
試著把 GUI 與簡單運算結合,做一個加法小工具:
import tkinter as tk
def calculate():
try:
num1 = float(entry1.get())
num2 = float(entry2.get())
result = num1 + num2
label_result.config(text=f"結果:{result}")
except ValueError:
label_result.config(text="請輸入數字!")
window = tk.Tk()
window.title("小計算機")
window.geometry("300x200")
tk.Label(window, text="數字 1:").pack()
entry1 = tk.Entry(window)
entry1.pack()
tk.Label(window, text="數字 2:").pack()
entry2 = tk.Entry(window)
entry2.pack()
button = tk.Button(window, text="加總", command=calculate)
button.pack(pady=10)
label_result = tk.Label(window, text="結果:")
label_result.pack()
window.mainloop()
明天要進行綜合練習:把 requests + BeautifulSoup + tkinter 結合,做一個「小爬蟲 GUI 工具」。
流程會是:輸入網址 → 抓標題 → 顯示在 GUI 介面裡。