Python Tkinter菜单小部件:

时间:2018-01-09 09:18:57

标签: python tkinter menu widget

我一直在努力学习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

1 个答案:

答案 0 :(得分:1)

mb["menu"] = Menu()Menu ID分配给Menubutton - 因此Menubutton知道要显示的内容。

mb.menu = ...未将Menu分配给Menubutton,您可以使用任何其他变量,即。 mb.hello_worldsubmenu代替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()