使用tkinter实现下拉菜单时GUI界面无显示问题咨询
问题原因
你代码的核心问题是级联菜单的挂载逻辑错误,导致没有任何菜单能正常渲染显示:
add_cascade是父菜单用来挂载子菜单的方法,你当前代码让子菜单submenu、sourya自己调用add_cascade,并把自己设为关联菜单,形成了无效的循环引用- 两个子菜单
submenu和sourya都没有正确挂载到你创建的顶层菜单pikumenu上,所以窗口不会显示任何菜单内容
解决方法
调整级联菜单的挂载逻辑,让顶层菜单pikumenu调用add_cascade挂载两个子菜单即可,修正后的完整代码如下:
from tkinter import * def functionhi(): print("hiiiiii") root = Tk() pikumenu = Menu(root) root.config(menu=pikumenu) submenu = Menu(pikumenu) # 父菜单pikumenu挂载submenu子菜单 pikumenu.add_cascade(label="add",menu=submenu) submenu.add_command(label="do",command=functionhi) submenu.add_separator() submenu.add_command(label="hiii",command=functionhi) sourya= Menu(pikumenu) # 父菜单pikumenu挂载sourya子菜单 pikumenu.add_cascade(label="exit",menu=sourya) sourya.add_command(label="done",command=lambda:print("hiiii exit ")) root.mainloop()
修改完成后运行代码,窗口顶部就会显示add和exit两个主下拉菜单,点击即可展开对应子选项,触发对应功能。
内容的提问来源于stack exchange,提问作者SOURYA SUKUL
相关产品推荐
相关产品推荐

