Python tkinter 文本框有颜色
Python tkinter text with color in text box
这是我的代码:
import tkinter as tk
def add_text(message, color='black'):
text_box.config(state=tk.NORMAL, fg=color)
text_box.insert(tk.END, message + "\n")
text_box.config(state=tk.DISABLED)
root = tk.Tk()
text_box = tk.Text(state=tk.DISABLED, font=("Arial 18", 16))
text_box.grid(row=0, column=0, sticky="nsew")
add_text("word")
add_text("word_with_color", 'red')
add_text("word")
tk.mainloop()
我只希望 "word_with_color"
字符串为其他颜色,我该怎么做?
我试过的功能改变了整个文本,那不是我想要的。
要将颜色或其他属性添加到一系列文本中,您首先要配置一个标签以具有您想要的属性,然后将标签添加到您想要影响的文本范围中。您可以在使用 insert
添加文本时添加标签,也可以稍后使用 tag_add
方法添加标签。
首先,为标签配置颜色。标签名称可以是任何你想要的。
text_box.tag_configure("warning", foreground="red")
接下来可以在调用insert
时添加标签。当您调用 insert
时,您可以在文本后提供标签列表。之后您可以添加其他文本和标签。
在下面的例子中,标签被添加到文本而不是换行符。
def add_text(message, tags=None):
text_box.config(state=tk.NORMAL)
text_box.insert(tk.END, message, tags, "\n")
text_box.config(state=tk.DISABLED)
你可以这样称呼它:
add_text("word")
add_text("word_with_color", "warning")
add_text("word")
这是我的代码:
import tkinter as tk
def add_text(message, color='black'):
text_box.config(state=tk.NORMAL, fg=color)
text_box.insert(tk.END, message + "\n")
text_box.config(state=tk.DISABLED)
root = tk.Tk()
text_box = tk.Text(state=tk.DISABLED, font=("Arial 18", 16))
text_box.grid(row=0, column=0, sticky="nsew")
add_text("word")
add_text("word_with_color", 'red')
add_text("word")
tk.mainloop()
我只希望 "word_with_color"
字符串为其他颜色,我该怎么做?
我试过的功能改变了整个文本,那不是我想要的。
要将颜色或其他属性添加到一系列文本中,您首先要配置一个标签以具有您想要的属性,然后将标签添加到您想要影响的文本范围中。您可以在使用 insert
添加文本时添加标签,也可以稍后使用 tag_add
方法添加标签。
首先,为标签配置颜色。标签名称可以是任何你想要的。
text_box.tag_configure("warning", foreground="red")
接下来可以在调用insert
时添加标签。当您调用 insert
时,您可以在文本后提供标签列表。之后您可以添加其他文本和标签。
在下面的例子中,标签被添加到文本而不是换行符。
def add_text(message, tags=None):
text_box.config(state=tk.NORMAL)
text_box.insert(tk.END, message, tags, "\n")
text_box.config(state=tk.DISABLED)
你可以这样称呼它:
add_text("word")
add_text("word_with_color", "warning")
add_text("word")