【问题标题】:Drop down menu using button with image in tkinter在 tkinter 中使用带有图像的按钮的下拉菜单
【发布时间】:2021-07-11 09:35:30
【问题描述】:

我正在尝试使用带有图像的按钮创建一个下拉菜单,我将在每个按钮上放置一些功能,但在下拉菜单上,我使用的唯一可用按钮是一个复选按钮。这是我目前正在使用的程序。

from tkinter import *
root = Tk()
mbtn = Menubutton(root, text="Options", relief=RAISED)
mbtn.menu = Menu(mbtn, tearoff = 0)
mbtn["menu"] = mbtn.menu

mbtn.menu.add_checkbutton(label="Outing")
mbtn.menu.add_checkbutton(label="Sleep")
mbtn.menu.add_checkbutton(label="Tour")

mbtn.pack()
root.mainloop()

【问题讨论】:

  • 为什么要在Menubutton 上调用.grid(),然后将结果(始终为None)保存到mbtn?还有你为什么最后打电话给mbtn.pack()

标签: python tkinter drop-down-menu


【解决方案1】:

这能解决您的问题吗?

from tkinter import *
root = Tk()
mbtn = Menubutton(root, text="Options", relief=RAISED)
mbtn.pack()
mbtn.menu = Menu(mbtn, tearoff = 0)
mbtn["menu"] = mbtn.menu

mbtn.menu.add_checkbutton(label="Outing")
mbtn.menu.add_checkbutton(label="Sleep")
mbtn.menu.add_checkbutton(label="Tour")

root.mainloop()

而不是mbtn.pack() 你显然也可以使用mbtn.grid()mbtn.place()(不建议 - .place()

@TheLizzard 补充说:您可以使用root.config(menu=mbtn.menu)(而不是mbtn.pack())使菜单成为窗口的一部分。

【讨论】:

  • 只是添加到这个答案:您可以使用root.config(menu=mbtn)(而不是mbtn.pack())使菜单成为窗口的一部分。
  • @Matiiss 我也尝试使用该程序,但菜单没有 add_button 的属性
  • root.config(menu=mbtn) 应该改为 root.config(menu=mbtn.menu)
猜你喜欢
  • 2018-09-16
  • 2013-07-06
  • 2018-07-27
  • 2022-12-31
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 2014-11-20
  • 2011-03-25
相关资源
最近更新 更多