我正在编写一些代码来向 tkInter 应用程序添加菜单。这是一个工作示例:
import tkinter
main = tkinter.Tk()
main.title('Menu Test')
menubar = tkinter.Menu(main)
main['menu'] = menubar
m = tkinter.Menu()
menubar.add_cascade(menu=m, label='First')
m.add_command(label='Thing', command=lambda: print('thing'))
m = tkinter.Menu()
menubar.add_cascade(menu=m, label='Second')
m.add_command(label='Whatever', command=lambda: print('whatever'))
# How to add another menu before 'First' ?
main.mainloop()
是否可以在第一个菜单之前First
添加另一个菜单( )?
显然,在这个简单的例子中,我可以先简单地定义它,但我想编写一个从字典中填充菜单的例程。
您可以使用标准 tk 方法
insert
而不是add_cascade
。第一个参数是菜单索引,新项目将添加到该索引之前。对于索引,您可以使用数字索引(例如:0
表示第一个项目)或菜单名称"First"
:-或者-
tkinter还有一种
insert_cascade
独有的方法(与其他语言的 tk 工具包不同):使用字典制作选项菜单并接收选择的值,使用 tkinter,这与你尝试使用字典执行的操作类似。希望这有帮助 :)