0

首先我只是尝试使用:

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)

但同样......它只是改变组合框中顶部元素的颜色......而不是整个下拉元素......我怎样才能改变所有下拉元素的颜色文本......?

提前致谢, eliran

4

1 回答 1

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可以被任何小部件替换)

于 2020-07-22T13:11:25.740 回答