Python 菜单栏未出现在Tkinter GUI上
我是Tkinter的新手,目前正在从视频中学习,我正在尝试创建一个菜单栏,其中包含一个带有一些选项和分隔符的下拉菜单,它们没有任何功能,因为我只是尝试在添加之前实现这个目标。 代码如下:Python 菜单栏未出现在Tkinter GUI上,python,python-3.x,tkinter,menu,Python,Python 3.x,Tkinter,Menu,我是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=menuT
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()
当我运行代码时,我得到一个空白窗口,我从一个视频中复制,该视频显示代码如图所示工作。
这是我正在看的视频。我试着把它放在一个类中,但它仍然不起作用。试试下面的代码,可以得到一个简单的下拉菜单
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()
您可以进一步向菜单中的每个选项添加命令尝试使用此代码创建一个简单的下拉菜单
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()
这些大多是参考错误 第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()
你是在苹果电脑上运行吗?在OSX上,菜单栏与其他应用程序一样出现在屏幕顶部,而不是窗口顶部。您是否在Macintosh上运行?在OSX上,菜单栏与其他应用程序一样出现在屏幕顶部,而不是窗口顶部。代码现在运行良好,非常感谢。不知道我是怎么错过的。代码现在运行得很好,非常感谢。不知道我怎么会错过。