微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在Windows上的ttk.OptionMenu中更改特定选项的颜色?

如何解决有没有办法在Windows上的ttk.OptionMenu中更改特定选项的颜色?

我正在尝试编写代码来更改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,但是显然它会更改整个小部件(而不是特定选项)和this的颜色,但这在Windows上不起作用。任何帮助将不胜感激。

解决方法

OptionMenu是显示菜单的按钮。该菜单是Tk菜单,因此一旦从OptionMenu小部件中获取引用,就可以在其上使用菜单命令。例如:

menu = opt_menu.nametowidget(opt_menu.cget('menu'))
index = menu.index('option 2')
menu.entryconfigure(index,background='red')

这将找到“选项2”条目的菜单索引并更改其背景颜色。

我个人建议使用ttk.Combobox。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。