为什么 Menubutton 在此代码中不起作用?
Why are Menubutton not working in this code?
在 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()
为什么?请告诉我,问题是什么?
您不能使用样式将菜单与菜单按钮相关联。您需要像使用 tk
菜单一样进行操作:
btn_menu.configure(menu=file)
在 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()
为什么?请告诉我,问题是什么?
您不能使用样式将菜单与菜单按钮相关联。您需要像使用 tk
菜单一样进行操作:
btn_menu.configure(menu=file)