Tkinter模組
Tkinter 是 Python 標準庫中提供的一個用於創建圖形用戶界面 (GUI) 的模組。它是一個跨平台工具包,通過 Tkinter,開發者可以快速構建圖形化的應用程式,例如計算機、文字編輯器、圖形繪製工具等。
Tkinter 的特點
- 簡單易用:適合初學者,提供直接的接口來構建 GUI 應用。
- 跨平台支持:支援 Windows、macOS 和大多數 Linux 系統,除了windows以外都需用pip額外安裝
- 標準庫支持:內建於 Python 中,無需額外安裝。
- 基本組件豐富:包含標籤、按鈕、文字框、選單、進度條等常見 GUI 元件。
一開始使用這個模組是因為想練習GUI套件,所以找到一個較簡易的模組,用來設計計算機。以下是tkinter內建的基本function,後續會一一介紹。
Tkinter 的組件簡介
| 元件名稱 | 功能描述 |
|---|---|
| Label | 用於顯示文字或圖像的標籤元件。 |
| Button | 按鈕元件,可用於觸發事件或執行功能。 |
| Entry | 單行文字輸入框,用於接收用戶輸入的簡單文字。 |
| Text | 多行文字輸入框,用於編輯或顯示多行文字。 |
| Radiobutton | 單選按鈕組,用於讓用戶在多個選項中選擇一個。 |
| Checkbutton | 複選按鈕,用於啟用或停用多個選項。 |
| Listbox | 列表框,用於顯示多項內容並允許用戶選擇其中一項或多項。 |
| OptionMenu | 下拉選單,提供多個選項以供選擇。 |
| Scale | 滑動條,用於調整數值範圍內的值。 |
| Spinbox | 數值調整框,提供增減特定範圍內數值的功能。 |
| Frame | 框架,用於組織和排列其他元件。 |
| LabelFrame | 帶標籤的框架,用於分組相關元件。 |
| Scrollbar | 滾動條,用於為列表、文本框等組件提供滾動功能。 |
| Canvas | 畫布,用於繪製圖形、顯示圖片或設置自定義的界面。 |
| Menu | 選單條,用於創建應用程式的功能選單。 |
| Messagebox | 消息框,用於顯示提示、警告或錯誤訊息。 |
| PhotoImage | 用於在介面中顯示圖片。 |
| ttk.Progressbar | 進度條,用於顯示任務的執行進度。 |
| ttk.Combobox | 下拉選單,結合輸入和選項的功能。 |
Menu: 選單條,用於創建應用程式的功能選單。
主功能表 (menu) 的建立與配置:
- menu = tk.Menu(root) root.config(menu=menu)
- tk.Menu(root):創建一個功能表物件並將其綁定到主視窗 (root)。
- root.config(menu=menu):將創建的功能表設置為主視窗的功能表。
建立第一個下拉選單 file_menu:
file_menu = tk.Menu(menu, tearoff=0) file_menu.add_command(label="Open") file_menu.add_command(label="Exit") menu.add_cascade(label="File", menu=file_menu)
- file_menu = tk.Menu(menu, tearoff=0):在主功能表 (menu) 下創建一個子功能表 file_menu,並禁用分離線(tearoff=0)。
add_command:
- label="Open":在功能表中添加名為 "Open" 的選項。
- label="Exit":在功能表中添加名為 "Exit" 的選項。
- add_cascade(label="File", menu=file_menu):將子功能表 file_menu 作為主功能表的項目,標籤為 "File"。
menu = tk.Menu(root)root.config(menu=menu)file_menu = tk.Menu(menu, tearoff=0)file_menu.add_command(label="Open")file_menu.add_command(label="Exit")menu.add_cascade(label="File", menu=file_menu) |
建立第二個下拉選單 menu2:
menu2 = tk.Menu(menu, tearoff=0) menu2.add_command(label="Test1") menu2.add_command(label="Test2") menu2.add_separator()
- menu2 = tk.Menu(menu, tearoff=0):在主功能表下創建另一個子功能表 menu2。
add_command:添加 "Test1" 和 "Test2" 選項。
add_separator():添加一條分隔線,將選項分開。
menu2 = tk.Menu(menu, tearoff=0)menu2.add_command(label="Test1")menu2.add_command(label="Test2")menu2.add_separator() |
在 menu2 中添加另一個子功能表 menu2_extend:
- menu2_extend = tk.Menu(menu2, tearoff=0) menu2_extend.add_command(label="A") menu2_extend.add_command(label="B") menu2.add_cascade(label="Extend", menu=menu2_extend)
- menu2_extend = tk.Menu(menu2, tearoff=0):在 menu2 下創建一個子功能表 menu2_extend。
add_command:添加選項 "A" 和 "B"。
- add_cascade(label="Extend", menu=menu2_extend):將子功能表 menu2_extend 添加到 menu2,標籤為 "Extend"。
將 menu2 添加到主功能表:
- menu.add_cascade(label="Test", menu=menu2)
- 將子功能表 menu2 作為主功能表的一項,標籤為 "Test"。
menu2_extend = tk.Menu(menu2, tearoff=0)menu2_extend.add_command(label="A")menu2_extend.add_command(label="B")menu2.add_cascade(label="Extend", menu=menu2_extend)menu.add_cascade(label="Test", menu=menu2)root.config(menu=menu) |
整體呈現效果如下:
文章標籤
全站熱搜
