如何更改Tkinter文本框的背景色和文字色?

3 投票
2 回答
22990 浏览
提问于 2025-04-18 05:10

我该如何在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()

2 个回答

0

在创建文本框的时候,可以用 bg 来设置背景颜色:

text = Text(root, bg = 'black')
6

这确实是可以的。如果你在调用 tag_addtag_config 方法之前插入文本:

text.insert(1.0, 'Hello World')

那么这个标签就会和插入的文本关联起来。不过,在当前调用时,没有可以插入标签的索引,所以实际上是没有标签的。

如果你想在用户输入时实时修改文本内容,可以把文本小部件绑定到一个按键事件,这样每当用户按下键,就会调用一个函数来为文本小部件添加和配置标签:

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()

撰写回答