簡潔的Tkinter選項選單配置方法
OptionMenu小部件是一個下拉選單,顯示使用者可以選擇的一系列選項。它是Python圖形使用者介面(GUI)程式設計中常用的一個元件,通常與其他Tkinter小部件結合使用,以建立直觀且互動式的介面。
在本文中,我們將探討使用Python配置Tkinter OptionMenu小部件的簡潔方法。具體來說,我們將介紹:
OptionMenu小部件的基本語法
如何將命令繫結到選擇
定義選項及其對應命令的簡潔方法
在閱讀完本文後,您將深入瞭解如何在Python應用程式中使用OptionMenu小部件。
OptionMenu小部件的基本語法
在Tkinter中建立OptionMenu小部件的基本語法如下:
OptionMenu(master, variable, *options)
master是父小部件
variable是一個StringVar物件,它儲存當前選擇的選項
*options是要在選單中顯示的選項,用逗號分隔
示例
例如,讓我們建立一個基本OptionMenu,允許使用者選擇他們最喜歡的顏色:
from tkinter import *
root = Tk()
root.geometry("720x250")
root.title("Creating a basic OptionMenu Widget")
colors = ["Red", "Green", "Blue"]
selected_color = StringVar(value=colors[0])
color_menu = OptionMenu(root, selected_color, *colors)
color_menu.pack()
root.mainloop()
在此程式碼中,我們定義了一個顏色列表,並建立了一個名為selected_color的StringVar物件,它儲存當前選擇的顏色(最初設定為列表中的第一種顏色)。然後,我們建立一個名為color_menu的OptionMenu,它顯示顏色列表,使用selected_color變數來跟蹤當前選擇。最後,我們使用pack()方法將OptionMenu打包到主視窗中。
輸出
當我們執行此程式碼時,我們會看到一個顯示顏色列表的下拉選單:

將命令繫結到選擇
通常,我們希望在使用者從OptionMenu中選擇一個選項時執行一個函式。我們可以透過在建構函式中使用command引數將命令繫結到OptionMenu來實現這一點。
示例
例如,讓我們建立一個OptionMenu,它顯示一個動物列表,並在使用者選擇動物時將所選動物列印到控制檯:
from tkinter import *
root = Tk()
root.geometry("720x250")
root.title("Creating a basic OptionMenu Widget with Binding a Command to the Selection")
def show_selection(option):
print(f"Selected option: {option.get()}")
options = ["Cat", "Fish", "Dog"]
selected_option = StringVar(value=options[0])
option_menu = OptionMenu(root, selected_option, *options, command=lambda option: show_selection(selected_option))
option_menu.pack()
root.mainloop()
輸出
當我們執行此程式碼時,我們會看到動物的下拉選單:

當我們選擇一個動物時,我們會看到相應的文字被列印到控制檯:
Selected option: Fish
定義選項和命令的簡潔方法
在許多情況下,我們可能需要在OptionMenu中顯示大量選項以及每個選項選擇的相應命令。在這種情況下,在建構函式中分別定義每個選項和命令可能會很麻煩。
相反,我們可以使用字典來定義選項和相應的命令,然後使用迴圈動態建立OptionMenu。這是一個演示此方法的示例:
示例
from tkinter import *
root = Tk()
root.geometry("720x250")
root.title("A Concise Way to Define Options and Commands in tkinter Option menu Widget")
def show_selection(option):
print(f"Selected option: {option.get()}")
options = ["Option1", "Option2", "Option3", "Option4", "Option5"]
selected_option = StringVar(value=options[0])
option_menu = OptionMenu(root, selected_option, *options, command=lambda option: show_selection(selected_option))
option_menu.pack()
root.mainloop()
在此程式碼中,我們定義了一個名為options的字典,它將每個選項標籤對映到執行所需命令的相應lambda函式。我們還定義了一個selected_option變數,它儲存當前選擇的選項,最初設定為字典中的第一個選項。
然後,我們建立一個名為option_menu的OptionMenu,它顯示選項列表,使用selected_option變數來跟蹤當前選擇。我們使用pack()方法將OptionMenu打包到主視窗中。
最後,我們使用items()方法遍歷options字典,並使用OptionMenu的“menu”屬性上的add_command()方法動態建立每個選項並繫結其相應的命令。這種方法允許我們以簡潔易讀的方式定義大量選項和命令。
輸出
當我們執行此程式碼時,我們會看到選項的下拉選單:

當我們選擇一個選項時,我們會看到相應的文字被列印到控制檯:
Selected option: Option4
結論
在本文中,我們探討了使用Python配置Tkinter OptionMenu小部件的簡潔方法。我們介紹了OptionMenu小部件的基本語法,如何設定初始選擇的選項,如何將命令繫結到選擇,以及如何使用字典和迴圈以簡潔的方式定義選項及其相應的命令。透過使用這些技術,您可以建立直觀的Python互動式GUI,允許使用者輕鬆地從選項列表中進行選擇。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP