我有一个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()
答案 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()
这是屏幕截图: