为什么Menubutton在此代码中不起作用?

时间:2020-04-20 16:58:11

标签: python python-3.x tkinter menu ttk

找到了一种非常有趣的方法来在Tkinter GUI-Menubutton中创建菜单。但是很遗憾,此代码无法正常工作(或者,当您单击Menubutton时,绑定的菜单无法打开):

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

root.option_add("*Menu.borderWidth", "0")
root.option_add("*Menu.activeBorderWidth", "0")
root.option_add("*Menu.background", "black")


style = ttk.Style(root)


menu = tk.Menu(root)

btn_menu = ttk.Menubutton(root, text='fegvd')
btn_menu.pack()

file = tk.Menu(btn_menu, tearoff=0, foreground='white')
file.add_command(label='ГЫГ')

style.configure('TMenubutton', background='black', foreground='white', indicatoron=0, menu=file, direction='delow', state='active')

root.mainloop()

尽管,如果我使用的不是ttk.Menubutton,而是tk.Menubutton,那么一切正常:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

root.option_add("*Menu.borderWidth", "0")
root.option_add("*Menu.activeBorderWidth", "0")
root.option_add("*Menu.background", "black")


menu = tk.Menu(root)

btn_menu = tk.Menubutton(root, text='fegvd')
btn_menu.pack()


file = tk.Menu(btn_menu, tearoff=0, foreground='white')
file.add_command(label='ГЫГ')

btn_menu.configure(background='black', foreground='white', indicator=0, menu=file, state='active')

root.mainloop()

为什么?请告诉我,这是什么问题?

1 个答案:

答案 0 :(得分:0)

您不能使用样式将菜单与菜单按钮关联。您需要完全像使用tk菜单那样进行操作:

btn_menu.configure(menu=file)