【问题标题】:Python tkinter text with color in text box文本框中带有颜色的 Python tkinter 文本
【发布时间】:2020-06-29 16:24:04
【问题描述】:

这是我的代码:

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

【问题讨论】:

    标签: python tkinter text textbox tk


    【解决方案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")
    

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 1970-01-01
      • 2012-06-15
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2015-05-22
      • 2013-05-17
      相关资源
      最近更新 更多