我使用Python 3,使用tkinter ttk库的"vista"主题时,为组合框设置背景颜色遇到了问题。 我尝试了来自这里的代码。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
combo = ttk.Combobox(root, values=['1', '2', '3'])
combo['state'] = 'readonly'
combo.pack()
tk.Entry(root).pack()
style = ttk.Style()
style.map('TCombobox', selectbackground=[('readonly', 'red')])
#style.map('TCombobox', fieldbackground=[('readonly', 'blue')]) #not working as well
但这只会更改文本的背景,组合框的其余部分仍然是白色。我在tcl论坛上看到了一篇帖子:http://wiki.tcl.tk/15780,我尝试使用“fieldbackground”,但似乎tkinter忽略了此参数。您有任何解决方法吗?也许有一种方法可以在特定主题中仅配置特定样式?我看到对于“default”主题,如果状态为“readonly”,则背景颜色会更改为灰色。
fieldbackground
即可,它会按预期工作。 - manty