有没有办法改变 Windows 上 ttk.OptionMenu 中特定选项的颜色?
Is there a way to change the color of a specific option in ttk.OptionMenu on Windows?
我正在尝试编写代码,通过按下按钮来更改 ttk.OptionMenu
中特定选项的颜色(当在下拉菜单中看到时,只有该选项应该显示颜色)。这是一个类似于我需要的代码。
from tkinter import *
from tkinter.ttk import OptionMenu
root = Tk()
def ch_color():
global ent, options
option = ent.get()
if option in options:
#The code to change the color of that option in opt_menu
options = ['option 1','option 2', 'option 3', 'option 4']
var = StringVar()
var.set("Select")
opt_menu = OptionMenu(root, var, *options).pack()
ent = StringVar()
entry = Entry(root, textvariable = ent).pack()
button = Button(root, text = "Change Color", command = ch_color).pack()
我试过 this, but apparently it changes the color of the entire widget, and not a specific option, and this,但这在 Windows 上不起作用。任何帮助将不胜感激。
OptionMenu 是一个显示菜单的按钮。该菜单是一个 Tk 菜单,因此您可以在从 OptionMenu 小部件获取引用后在其上使用菜单命令。例如:
menu = opt_menu.nametowidget(opt_menu.cget('menu'))
index = menu.index('option 2')
menu.entryconfigure(index, background='red')
这将找到 'option 2' 条目的菜单索引并更改其背景颜色。
我个人建议改用 ttk.Combobox。
我正在尝试编写代码,通过按下按钮来更改 ttk.OptionMenu
中特定选项的颜色(当在下拉菜单中看到时,只有该选项应该显示颜色)。这是一个类似于我需要的代码。
from tkinter import *
from tkinter.ttk import OptionMenu
root = Tk()
def ch_color():
global ent, options
option = ent.get()
if option in options:
#The code to change the color of that option in opt_menu
options = ['option 1','option 2', 'option 3', 'option 4']
var = StringVar()
var.set("Select")
opt_menu = OptionMenu(root, var, *options).pack()
ent = StringVar()
entry = Entry(root, textvariable = ent).pack()
button = Button(root, text = "Change Color", command = ch_color).pack()
我试过 this, but apparently it changes the color of the entire widget, and not a specific option, and this,但这在 Windows 上不起作用。任何帮助将不胜感激。
OptionMenu 是一个显示菜单的按钮。该菜单是一个 Tk 菜单,因此您可以在从 OptionMenu 小部件获取引用后在其上使用菜单命令。例如:
menu = opt_menu.nametowidget(opt_menu.cget('menu'))
index = menu.index('option 2')
menu.entryconfigure(index, background='red')
这将找到 'option 2' 条目的菜单索引并更改其背景颜色。
我个人建议改用 ttk.Combobox。