如何更改使用Tkinter完成的文本框的背景颜色和文本颜色?

时间:2014-05-02 19:33:00

标签: python tkinter background-color

如何在python中更改使用Tkinter完成的文本框的背景颜色? 我使用下面的代码,但我不明白为什么它不起作用

from Tkinter import *

def onclick():
   pass

root = Tk()
text = Text(root)
text.pack()

text.tag_add("here", "1.0", "1.4")
text.tag_add("start", "1.8", "1.13")
text.tag_config("here", background="black", foreground="green")
root.mainloop()

1 个答案:

答案 0 :(得分:3)

确实有效。如果您插入文字:

text.insert(1.0, 'Hello World')

在调用tag_addtag_config方法之前,该标记将附加到插入的文本中。但是,在它当前被调用时,没有索引插入标记,因此实际上没有标记。

如果要在用户在窗口小部件中键入时实时修改文本内容,可以将文本窗口小部件绑定到按键事件,该事件调用为文本窗口小部件添加和配置标记的函数:

from Tkinter import *

def track_change_to_text(event):
    text.tag_add("here", "1.0", "1.4")
    text.tag_config("here", background="black", foreground="green")

root = Tk()

text = Text(root)
text.pack()

text.bind('<KeyPress>', track_change_to_text)

root.mainloop()