如何解决菜单栏未出现在Tkinter GUI上
我是Tkinter的新手,目前正在学习视频,我正在尝试创建一个菜单栏,其中包含带有某些选项和分隔符的进一步下拉菜单,因为它们不具有任何功能,只是想在实现目标之前就实现目标。 这是代码:
from tkinter import *
def donothing():
print('Done')
root = Tk()
menuTop = Menu(root) # this is a blank menu bar at the top
root.config(menu=menuTop) # configures the menu feature,and assigns it to the Menu value
submenuDown = Menu(menuTop) # this is a meta menu that *will* drop down
menuTop.add_cascade(label='File',menu=subMenu) # assigns drop down menu to submenu def
submenuDown.add_command(label='Yes...',command=donothing)
submenuDown.add_command(label='No...',command=donothing)
submenuDown.add_seperator()
submenuDown.add_command(label='Exit!',command=donothing)
editMenu = Menu(menuTop)
menu.add_cascade(label='Edit',menu=editMenu)
editMenu.add_command(label='Redo',command=donothing)
root.mainloop()
运行代码时,我得到一个空白窗口,我正在从视频复制,该视频显示了代码的工作方式,如图所示。 This是我正在观看的视频。我尝试过将它放在一个类中,但仍然无法正常工作。
解决方法
尝试使用此代码获得简单的下拉菜单
from tkinter import *
root=Tk()
root.title('Drop down menu')
root.geometry('400x400')
def show():
mylbl= Label(root,text=clicked.get()).pack()
options =[
'monday','tuesday','wednesday','thursday','friday','satarday','sunday'
]
clicked =StringVar()
drop =OptionMenu(root,clicked,*options).pack()
root.mainloop()
您可以进一步向菜单中的每个选项添加命令
,这些主要是参考错误。
第14行:您引用的名称不存在:
menuTop.add_cascade(label='File',menu=subMenu)
# Should be ----------------------menu=submenuDown
第17行:拼写错误:
submenuDown.add_seperator()
# Should be -------a
第21行:参考错误:
menu.add_cascade(label='Edit',menu=editMenu)
menuTop ------- should be
这些更改后,它运行正常:
from tkinter import *
def donothing():
print('Done')
root = Tk()
menuTop = Menu(root) # this is a blank menu bar at the top
root.config(menu=menuTop) # configures the menu feature,and assigns it to the Menu value
submenuDown = Menu(menuTop) # this is a meta menu that *will* drop down
menuTop.add_cascade(label='File',menu=submenuDown) # assigns drop down menu to submenu def
submenuDown.add_command(label='Yes...',command=donothing)
submenuDown.add_command(label='No...',command=donothing)
submenuDown.add_separator()
submenuDown.add_command(label='Exit!',command=donothing)
editMenu = Menu(menuTop)
menuTop.add_cascade(label='Edit',menu=editMenu)
editMenu.add_command(label='Redo',command=donothing)
root.mainloop()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。