我在尝试运行此代码时遇到错误,错误如下:
NameError:名称'Menu'未定义
import Tkinter as tk
import Tkinter
class Navbar:
menu = Menu()
root.config(menu=menu)
fileMenu = Menu(menu)
menu.add_cascade(label='File', menu=fileMenu)
fileMenu.add_command(label='New', command=doNothing)
fileMenu.add_separator()
fileMenu.add_command(label='Settings', command=doNothing)
fileMenu.add_separator()
fileMenu.add_command(label='Quit', command=doNothing)
class MainApplication(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.navbar = Navbar(self)
self.navbar.pack(side="left", fill="y")
if __name__ == "__main__":
root = tk.Tk()
MainApplication(root).pack(side="top", fill="both", expand=True)
root.mainloop()
为什么我会收到此错误,我该怎么做才能阻止此错误发生?
答案 0 :(得分:2)
Menu
是Tkinter
模块中的一个命令,就像您正在使用的Tk
和Frame
一样。由于您要导入模块两次,因此可以将其称为Tkinter.Menu(...)
或tk.Menu(...)
。
通常你只想要一次导入Tkinter。我猜你是从多个来源复制和粘贴代码。我的建议是import Tkinter as tk
,然后对所有tkinter函数使用前缀tk.
。我认为它使代码更容易理解。