ttk:条目小部件禁用背景颜色

时间:2015-12-28 13:23:20

标签: python widget ttk

我有一个ttk条目,其中"禁用"州。 禁用时输入字段的背景颜色为浅蓝色。 如何将其更改为默认的灰色?从这篇文章我明白了我们如何改变前景色。 tkinter ttk Entry widget -disabledforeground

我为背景颜色尝试了相同的方法但它没有用。 我在Windows 7中使用python 2.7。

这是我按照上述帖子尝试的代码:

from Tkinter import *
from ttk import *

root=Tk()

style=Style()
style.map("TEntry",background=[("active", "black"), ("disabled", "red")])
entry_var=StringVar()
entry=Entry(root,textvariable=entry_var,state='disabled')
entry.pack()
entry_var.set('test')

root.mainloop()

2 个答案:

答案 0 :(得分:0)

在ttk和Tk条目小部件中,background指的是不同的东西。在Tk Entry中,background指的是文本背后的颜色,在ttk条目中,background指的是小部件背后的颜色。 (是的,我知道,混淆吧?),你要改变的是fieldbackground。所以你的代码将是

from Tkinter import *
from ttk import *

root=Tk()

style=Style()
style.map("TEntry",fieldbackground=[("active", "black"), ("disabled", "red")])
entry_var=StringVar()
entry=Entry(root,textvariable=entry_var,state='disabled')
entry.pack()
entry_var.set('test')

root.mainloop()

答案 1 :(得分:0)

您不需要使用样式。您可以使用选项disabledbackground=<color>更改禁用条目的颜色。您可以在创建条目时使用此选项,例如:

entry.config(background="black",disabledbackground="red")

所以您的总体代码(示例)为:

from tkinter import *
import time
root=Tk()
entry=Entry(root,state='disabled')
entry.config(background="black",disabledbackground="red")
entry.pack()
root.mainloop()

这是屏幕截图:

enter image description here