如何在 Tkinter 中向子選單新增單選按鈕?


Tkinter 是 Python 的標準 GUI 工具包,它提供了各種小部件來建立互動式應用程式。隨著應用程式複雜度的增加,對增強組織性和使用者友好性的需求也隨之增加。這促使使用 Tkinter 在子選單中整合單選按鈕,從而實現更系統化和直觀的介面。

本文深入探討了在 Tkinter 子選單中無縫整合單選按鈕的方法,從而增強圖形應用程式的功能。透過探索此過程,開發人員可以釋放建立更復雜和以使用者為中心的介面的潛力,利用 Tkinter 的功能來最佳化 Python GUI 開發中的使用者體驗。

建立帶子選單的選單

在深入研究如何在 Tkinter 中向子選單新增單選按鈕的實現之前,我們需要了解如何建立帶子選單的選單。Menu 小部件用於建立選單,在選單中,您可以使用 add_cascade 方法包含子選單。讓我們檢視一下使用以下程式碼片段的簡單示例:

示例

# Importing the neccessary libraries
import tkinter as tk

# Create the main window
root = tk.Tk()
# Give title to the main window
root.title("Simple example of Creating menu with a submenu")

# Set window dimensions
root.geometry("720x250")

# Create a menu
menu_bar = tk.Menu(root)
root.config(menu=menu_bar)

# Create a submenu
submenu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="File", menu=submenu)

# Add items to the submenu
submenu.add_command(label="Open")
submenu.add_command(label="Save")
submenu.add_separator()
submenu.add_command(label="Exit")

# Run the Tkinter event loop
root.mainloop()

以上基本示例演示瞭如何建立帶子選單的選單。讓我們檢視下面的輸出

輸出

點選“檔案”選單,它將為您提供三個選項,即“開啟”、“儲存”和“退出”作為子選單。

現在,讓我們繼續在子選單中整合單選按鈕,並透過一個實現示例來理解它。

向子選單新增單選按鈕

要在子選單中包含單選按鈕,我們需要利用 Tkinter 提供的 add_radiobutton 方法。此方法允許我們將單選按鈕選項新增到選單中,每個選項都與一個特定的變數相關聯。當選中一個單選按鈕時,其對應的變數將更新。以下是實現示例:

示例

# Importing the necessary libraries
import tkinter as tk
# Defining the function to create radio buttons in submenu
def on_radio_select(submenu_name):
   selected_option = submenu_var[submenu_name].get()
   print(f"{submenu_name}: Selected option - {selected_option}")
    
# Create the main window
root = tk.Tk()
# Give title to the main window
root.title("Cretaing Multiple Submenus with Radiobuttons")

# Set window dimensions
root.geometry("720x250")

# Create a menu bar
menubar = tk.Menu(root)
root.config(menu=menubar)

# Create a dictionary to store StringVars for each submenu
submenu_var = {}

# Create the first submenu
submenu1 = tk.Menu(menubar, tearoff=0)
menubar.add_cascade(label="Menu 1", menu=submenu1)

submenu_var["Menu 1"] = tk.StringVar()

submenu1.add_radiobutton(label="Option A", variable=submenu_var["Menu 1"], value="Option A", command=lambda: on_radio_select("Menu 1"))
submenu1.add_radiobutton(label="Option B", variable=submenu_var["Menu 1"], value="Option B", command=lambda: on_radio_select("Menu 1"))
submenu1.add_radiobutton(label="Option C", variable=submenu_var["Menu 1"], value="Option C", command=lambda: on_radio_select("Menu 1"))

# Create the second submenu
submenu2 = tk.Menu(menubar, tearoff=0)
menubar.add_cascade(label="Menu 2", menu=submenu2)

submenu_var["Menu 2"] = tk.StringVar()

submenu2.add_radiobutton(label="Option X", variable=submenu_var["Menu 2"], value="Option X", command=lambda: on_radio_select("Menu 2"))
submenu2.add_radiobutton(label="Option Y", variable=submenu_var["Menu 2"], value="Option Y", command=lambda: on_radio_select("Menu 2"))
submenu2.add_radiobutton(label="Option Z", variable=submenu_var["Menu 2"], value="Option Z", command=lambda: on_radio_select("Menu 2"))

# Run the Tkinter event loop
root.mainloop()

在此示例中,我們建立了一個帶兩個子選單的主選單欄,每個子選單都包含自己的一組單選按鈕。on_radio_select 函式以子選單名稱作為引數,並列印該子選單的選中選項。

輸出

點選“選單 1”後,它將在子選單中顯示三個單選按鈕,即“選項 A”、“選項 B”和“選項 C”。另一方面,當您點選“選單 2”時,它將在子選單中顯示三個單選按鈕,即“選項 X”、“選項 Y”和“選項 Z”。

結論

總之,使用 Tkinter 將單選按鈕整合到子選單中可以豐富 Python GUI 的互動功能。這個簡單的過程不僅為您的應用程式添加了一層組織性,而且增強了使用者友好性。透過將相關選項分組到子選單中並將其與單選按鈕關聯,您可以建立更直觀和更具視覺吸引力的介面。Tkinter 的靈活性允許進行廣泛的自定義,使您能夠根據應用程式的設計調整單選按鈕的外觀和行為。此外,Tkinter 提供的事件處理機制使您能夠根據使用者選擇執行特定操作。嘗試使用這些功能可以開啟建立複雜且以使用者為中心的圖形應用程式的大門,展示了 Tkinter 在 Python GUI 開發領域的功能和多功能性。

更新於: 2023-12-05

315 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.