我一直在努力学习Tkinter,在查找“菜单”小部件时,我偶然发现了以下代码。
from tkinter import *
import tkinter.messagebox
top = Tk()
mb= Menubutton ( top, text="condiments", relief=RAISED )
mb.grid()
mb.menu = Menu ( mb, tearoff = 0)
mb["menu"] = mb.menu
mayoVar = IntVar()
ketchVar = IntVar()
mb.menu.add_checkbutton ( label="mayo",
variable=mayoVar )
mb.menu.add_checkbutton ( label="ketchup",
variable=ketchVar )
mb.pack()
top.mainloop()
现在我承担了代码的目的,但我很难搞清楚以下代码行的用途。
mb["menu"] = mb.menu
答案 0 :(得分:1)
mb["menu"] = Menu()
将Menu ID
分配给Menubutton
- 因此Menubutton
知道要显示的内容。
mb.menu = ...
未将Menu
分配给Menubutton
,您可以使用任何其他变量,即。 mb.hello_world
或submenu
代替mb.menu
,如下例所示
import tkinter as tk
root = tk.Tk()
mb = tk.Menubutton(root, text="condiments", relief=tk.RAISED)
mb.grid()
submenu = tk.Menu(mb, tearoff=0)
mayo_var = tk.IntVar()
ketch_var = tk.IntVar()
submenu.add_checkbutton(label="mayo", variable=mayo_var)
submenu.add_checkbutton(label="ketchup", variable=ketch_var)
mb['menu'] = submenu
root.mainloop()