Tkinter中复选菜单是否被选中的判断与设置

时间:2021-06-16 19:03:32

废话不多说,直接上代码,其中有注释,代码如下:

# encoding: utf-8
""" 运行之后会出一个窗口,按钮点击会改变复选菜单的被选中状态,复选菜单是否被选中看前面是否有√。 点击复选菜单会打印被选中状态,注意点击之后是先变更状态后打印状态。 """  from Tkinter import *


def change_check_button_state(evet):
    """改变复选菜单的被选中状态"""  if var.get() == 0:
        var.set(1)
    else:
        var.set(0)


def print_check_button_state():
    """打印复选菜单是否被选中"""  print("check button state: {}".format(var.get()))

# 主窗口
root = Tk()
root.wm_minsize(200, 100)

# 菜单栏
menu = Menu(root)
# 一级菜单,就是记事本中的"文件","编辑","格式"
menu_check = Menu(menu)
# ********** 注意:这个 var 对象是重点 **********
var = IntVar()
# 添加复选菜单
menu_check.add_checkbutton(label="check1", command=print_check_button_state, variable=var)
# 设置一级菜单
menu.add_cascade(label="check", menu=menu_check)
# 设置菜单栏
root["menu"] = menu

btn = Button(root, text="change check state")
btn.bind("<Button-1>", change_check_button_state)
btn.pack()

# 主循环
root.mainloop()