NameError 'Menu' 未定义 Python, Tkinter
我在运行这段代码的时候总是遇到一个错误,错误信息是:
NameError: name 'Menu' is not defined
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()
为什么会出现这个错误?我该怎么做才能避免这个错误呢?
1 个回答
2
Menu
是 Tkinter
模块中的一个命令,就像你正在使用的 Tk
和 Frame
一样。由于你导入了这个模块两次,所以你可以用 Tkinter.Menu(...)
或 tk.Menu(...)
来调用它。
通常情况下,你只需要导入一次 Tkinter。我猜测你可能是从多个地方复制粘贴代码。我的建议是使用 import Tkinter as tk
,然后在所有 Tkinter 的函数前加上 tk.
这个前缀。这样做会让代码更容易理解。