如何让Tkinter菜单栏中的Checkbutton在窗口打开时默认选中?
你的代码里有两处关键问题,调整后就能实现菜单栏复选按钮默认选中:
- 实例化BooleanVar对象:原代码中
var = tk.BooleanVar仅引用了类,没有创建实际的变量实例,必须添加括号()生成对象。 - 设置变量初始值:通过
var.set()方法给变量设置与onvalue对应的值,你设置了onvalue=1,因此用var.set(1)就能让复选按钮默认处于选中状态。
修正后的完整代码:
import tkinter as tk def func(): # some code here print("复选框当前状态:", var.get()) # 可添加此句查看状态变化 # 实例化BooleanVar并设置初始值为1(对应onvalue) var = tk.BooleanVar() var.set(1) win = tk.Tk() menubar = tk.Menu(win) optmenu = tk.Menu(menubar, tearoff=0) menubar.add_cascade(label='Options', menu=optmenu) optmenu.add_checkbutton(label='xyz', variable=var, onvalue=1, offvalue=0, command=func) win.config(menu=menubar) win.mainloop()
补充说明:如果把onvalue和offvalue改为布尔值True和False,那初始值设置var.set(True)同样生效,两种变量类型的写法都可根据习惯选择。
内容的提问来源于stack exchange,提问作者ThomasWong
相关产品推荐
相关产品推荐

