在Tkinter中使用Checkbutton制作菜单选项?
我正在用Tkinter制作一个菜单,但我想在菜单选项中用"add_checkbutton"
来代替"add_command"
。但是问题是:我该怎么取消选中/选中一个复选框呢?
menu = Menu(parent)
parent.config(menu=menu)
viewMenu = Menu(menu)
menu.add_cascade(label="View", menu=viewMenu)
viewMenu.add_command(label = "Show All", command=self.showAllEntries)
viewMenu.add_command(label="Show Done", command= self.showDoneEntries)
viewMenu.add_command(label="Show Not Done", command = self.showNotDoneEntries)
2 个回答
0
在这里,我试着解决你的问题,并找到了一个思路。希望这能对你有所帮助 :)
from tkinter import *
root=Tk()
root.geometry("300x300")
var1='button1'
var2='button2'
def fun(value):
if value=="button1":
testmenu.entryconfigure("button1",background="light blue")
testmenu.entryconfigure("button2", background="#ede8ec")
label.config(text="Afridi-1")
if value=="button2":
testmenu.entryconfigure("button2",background="light blue")
testmenu.entryconfigure("button1", background="#ede8ec")
label.config(text="Afridi-2")
mainmenu=Menu(root)
root.config(menu=mainmenu)
testmenu=Menu(mainmenu,tearoff=False,background="#ede8ec")
mainmenu.add_cascade(label="Test",menu=testmenu)
testmenu.add_command(label="button1",command=lambda :fun(var1))
testmenu.add_command(label="button2",command=lambda :fun(var2))
label=Label(text="")
label.pack(pady=125)
root.mainloop()
27
你需要把一个变量和复选框的项目关联起来,然后通过设置这个变量来控制复选框的选中或未选中状态。举个例子:
import tkinter as tk
parent = tk.Tk()
menubar = tk.Menu(parent)
show_all = tk.BooleanVar()
show_all.set(True)
show_done = tk.BooleanVar()
show_not_done = tk.BooleanVar()
view_menu = tk.Menu(menubar)
view_menu.add_checkbutton(label="Show All", onvalue=1, offvalue=0, variable=show_all)
view_menu.add_checkbutton(label="Show Done", onvalue=1, offvalue=0, variable=show_done)
view_menu.add_checkbutton(label="Show Not Done", onvalue=1, offvalue=0, variable=show_not_done)
menubar.add_cascade(label='View', menu=view_menu)
parent.config(menu=menubar)
parent.mainloop()