菜单栏未在 python 中定义
Posted
技术标签:
【中文标题】菜单栏未在 python 中定义【英文标题】:menubar not defined in python 【发布时间】:2017-12-19 20:23:54 【问题描述】:我正在尝试在 python 中使用 tkinter 库制作一个程序,但它给出的错误显示 ---
NameError:名称“菜单栏”未定义
import tkinter
import sys
def hey():
print("hello")
def myNew():
mlabel = Label(root,text="yo").pack()
root = tkinter.Tk()
root.title("Wizelane")
root.geometry('400x80+350+340')
filemenu = tkinter.Menu(menubar, tearoff=0)
filemenu.add_command(label="New",command=myNew)
label = tkinter.Label(root,text="say hello")
label.pack()
hello = tkinter.Button(root,text="hello",command=hey)
hello.pack()
root.mainloop()
【问题讨论】:
查看这里tutorialspoint.com/python/tk_menu.htm 在 root.mainloop() 之前添加 root.config(menu=menubar) 行。可能有用 您希望在这里发生什么?你必须在使用它之前定义变量menubar
。
你认为Menu(menubar, ...)
在做什么?你为什么在那个声明中加上menubar
?
【参考方案1】:
你在这里遗漏了一些重要的部分。
需要先配置菜单,还需要添加级联标签。
看看这段代码。
import tkinter
def hey():
print("hello")
def myNew():
# you forgot to use tkinter.Label here.
mlabel = tkinter.Label(root, text="yo").pack()
root = tkinter.Tk()
root.title("Wizelane")
root.geometry('400x80+350+340')
my_menu = tkinter.Menu(root)
# configure root to use my_menu widget.
root.config(menu = my_menu)
# create a menu widget to place on the menubar
file_menu = tkinter.Menu(my_menu, tearoff=0)
# add the File cascade option for drop down use
my_menu.add_cascade(label = "File", menu = file_menu)
# then add the command you want to add as a File option.
file_menu.add_command(label="New", command = myNew)
label = tkinter.Label(root, text="say hello")
label.pack()
hello = tkinter.Button(root, text="hello", command = hey)
hello.pack()
root.mainloop()
【讨论】:
以上是关于菜单栏未在 python 中定义的主要内容,如果未能解决你的问题,请参考以下文章