菜单栏未在 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 中定义的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 自定义演示侧边栏未出现在帖子上

Twitter Bootstrap:导航栏未在方向更改时调整大小(仅适用于 Android 的股票浏览器)

Bootstrap 导航栏未正确定位内部的某些元素

导航栏引导菜单未在移动设备中显示

SB Admin 2 侧边栏未折叠

SWRevealViewController 隐藏我的前视图控制器的导航栏