如何将单选按钮添加到 Tkinter 中的子菜单
How to add radiobuttons to a submenu in Tkinter
我想在我的 GUI 中名为 "Channel" 的子菜单中包含一组两个单选按钮 "BBC" 和 "CNN"。
我尝试使用 add_radiobutton
方法,但单选按钮出现在子菜单下,而我希望它们表现为 "Channel" 子菜单的属性,而不是 "News" 菜单的附加子菜单。
from tkinter import *
root = Tk()
root.title("main")
root.geometry("500x500")
MAIN_MENU = Menu(root)
root.config(menu=MAIN_MENU)
File_menu = Menu(MAIN_MENU, tearoff=0)
MAIN_MENU.add_cascade(label="News", menu=File_menu, underline=0)
File_menu.add_command(label="Channel")
File_menu.add_radiobutton(label="BBC")
File_menu.add_radiobutton(label="CNN")
Settings_menu = Menu(MAIN_MENU, tearoff=0)
MAIN_MENU.add_cascade(label="History", menu=Settings_menu, underline=3)
root.mainloop()
您必须先制作一个子菜单,向其添加单选按钮,然后将其作为级联添加到主菜单。然后,将该菜单添加到您的菜单栏。
menuBar = tk.Menu(root)
menu1 = tk.Menu(root)
submenu = tk.Menu(root)
submenu.add_radiobutton(label="Option 1")
submenu.add_radiobutton(label="Option 2")
menuBar.add_cascade(label="Menu 1", menu=menu1)
menu1.add_cascade(label="Subemnu with radio buttons", menu=submenu)
完整的工作示例:
import tkinter as tk
root = tk.Tk()
menuBar = tk.Menu(root)
menu1 = tk.Menu(root)
submenu = tk.Menu(root)
submenu.add_radiobutton(label="Option 1")
submenu.add_radiobutton(label="Option 2")
menuBar.add_cascade(label="Menu 1", menu=menu1)
menu1.add_cascade(label="Subemnu with radio buttons", menu=submenu)
root.config(menu=menuBar)
root.mainloop()
您可能希望向单选按钮添加一些属性。
更完整的表格是:
add_radiobutton(label="Option 1", value=1, variable=optionVar, command=on_option_1)
其中:
label
是出现在菜单中的文字;
variable
是一个 tk.Variable
实例,通常是 IntVar
或 StringVar
;
value
是选择选项时设置为variable
的值;
command
是选择选项时运行的回调。
我想在我的 GUI 中名为 "Channel" 的子菜单中包含一组两个单选按钮 "BBC" 和 "CNN"。
我尝试使用 add_radiobutton
方法,但单选按钮出现在子菜单下,而我希望它们表现为 "Channel" 子菜单的属性,而不是 "News" 菜单的附加子菜单。
from tkinter import *
root = Tk()
root.title("main")
root.geometry("500x500")
MAIN_MENU = Menu(root)
root.config(menu=MAIN_MENU)
File_menu = Menu(MAIN_MENU, tearoff=0)
MAIN_MENU.add_cascade(label="News", menu=File_menu, underline=0)
File_menu.add_command(label="Channel")
File_menu.add_radiobutton(label="BBC")
File_menu.add_radiobutton(label="CNN")
Settings_menu = Menu(MAIN_MENU, tearoff=0)
MAIN_MENU.add_cascade(label="History", menu=Settings_menu, underline=3)
root.mainloop()
您必须先制作一个子菜单,向其添加单选按钮,然后将其作为级联添加到主菜单。然后,将该菜单添加到您的菜单栏。
menuBar = tk.Menu(root)
menu1 = tk.Menu(root)
submenu = tk.Menu(root)
submenu.add_radiobutton(label="Option 1")
submenu.add_radiobutton(label="Option 2")
menuBar.add_cascade(label="Menu 1", menu=menu1)
menu1.add_cascade(label="Subemnu with radio buttons", menu=submenu)
完整的工作示例:
import tkinter as tk
root = tk.Tk()
menuBar = tk.Menu(root)
menu1 = tk.Menu(root)
submenu = tk.Menu(root)
submenu.add_radiobutton(label="Option 1")
submenu.add_radiobutton(label="Option 2")
menuBar.add_cascade(label="Menu 1", menu=menu1)
menu1.add_cascade(label="Subemnu with radio buttons", menu=submenu)
root.config(menu=menuBar)
root.mainloop()
您可能希望向单选按钮添加一些属性。 更完整的表格是:
add_radiobutton(label="Option 1", value=1, variable=optionVar, command=on_option_1)
其中:
label
是出现在菜单中的文字;variable
是一个tk.Variable
实例,通常是IntVar
或StringVar
;value
是选择选项时设置为variable
的值;command
是选择选项时运行的回调。