猿问

文本框中带有颜色的 Python tkinter 文本

这是我的代码:


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"字符串为其他颜色,我该怎么做?我试过的功能改变了整个文本,那不是我想要的。


米脂
浏览 267回答 1
1回答

叮当猫咪

要将颜色或其他属性添加到文本范围,您首先要将标签配置为具有所需的属性,然后将标签添加到要影响的文本范围。您可以在使用 添加文本时添加标签,也可以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")
随时随地看视频慕课网APP

相关分类

Python
我要回答