如何更改ttk组合框小部件的下拉文本颜色的颜色?

时间:2020-06-27 17:03:18

标签: python tkinter ttk ttkwidgets

首先我只尝试使用过:

missed_list_combobox.config(foreground="red") 

然后我正尝试设置新样式:

style_missed_combobox = tkinter.ttk.Style()
style_missed_combobox.configure("Red.TCombobox", foreground="red")

并在创建组合框窗口小部件后使用它。

missed_list_combobox = tkinter.ttk.Combobox(frame4, state="readonly", width=32, style="Red.TCombobox")
missed_list_combobox.grid(row=2, column=3, padx=2, sticky="w", pady=3)

但是同样...它只是更改组合框中顶部元素的颜色... 不是整个下拉菜单元素... 我如何更改所有下拉元素的颜色文本??

预先感谢, 埃里兰

1 个答案:

答案 0 :(得分:0)

据我所知,这是tkinter不可能直接实现的,因为我们无法通过python接口访问组合框的列表框。 但是,可以使用下面的tcl解释器完成此操作:

missed_list_combobox.tk.eval('[ttk::combobox::PopdownWindow %s].f.l configure -foreground red' % missed_list_combobox)

如果您还想将背景更改为黄色,只需将-background yellow添加到上述tcl命令中即可。

顺便说一句,如果要更改所有组合框的下拉列表框的默认前景,则可以使用

root.option_add('*TCombobox*Listbox.foreground' % frame, 'red')

但这仅适用于在此行之后创建的组合框({root可以被任何小部件替换)