如何在Tkinter的Menu级联菜单中使用add_radiobutton设置默认勾选项
要实现默认选中10x10选项,核心是给同组的单选按钮绑定共享变量,并将变量初始值设为对应选项的标识值:
- 定义一个
StringVar(或IntVar)作为单选组的绑定变量 - 给每个
add_radiobutton()指定variable参数绑定这个变量,同时用value参数给每个选项设置唯一标识 - 将绑定变量的初始值设置为默认选项的
value,启动时就会自动勾选对应选项
修改后的完整代码:
from tkinter import Tk, Menu, StringVar root = Tk() menubar = Menu(root) size = Menu(menubar, tearoff=0) # 定义共享变量,用于绑定所有尺寸单选按钮 selected_size = StringVar() # 设置初始值为"10x10",对应默认勾选的选项 selected_size.set("10x10") # 给每个单选按钮绑定变量和对应value size.add_radiobutton(label='5x5', variable=selected_size, value='5x5') size.add_radiobutton(label='10x10', variable=selected_size, value='10x10') size.add_radiobutton(label='15x15', variable=selected_size, value='15x15') menubar.add_cascade(label='Size', menu=size) root.config(menu=menubar) root.mainloop()
这样启动程序时10x10会自动显示勾选标记,切换其他选项时会自动取消之前的勾选,完全符合单选按钮的互斥逻辑。
内容的提问来源于stack exchange,提问作者Jericho
相关产品推荐
相关产品推荐

