向Tkinter窗口添加文本 - 格式化特定字符串

时间:2015-12-07 13:58:17

标签: python tkinter

我有两个数组。一个是片段标题数组,另一个数组充满了这些片段的文本。我想将标题和相关片段添加到Tkinter窗口,我想让标题显示为粗体/斜体/我想要的任何格式。

for x in range(0, upper_bound):
   w.insert(Tkinter.INSERT,title_array[x] + "\n")
   w.insert(Tkinter.INSERT,snippet_array[x] + "\n\n")

我如何在'insert'阶段指定我想要它以粗体显示(例如)?

我意识到我可能以错误的方式接近这个任务,请建议一个更优雅的解决方案。

1 个答案:

答案 0 :(得分:0)

您必须使用适当的格式创建标记,然后在插入文本时提供该标记。

w.tag_configure("heading", background="black", foreground="white")
...
for x in range(0, upper_bound):
    w.insert("insert", title_array[x] + "\n", "heading")
    w.insert("insert", snippet_array[x] + "\n\n")

如果需要,您可以使用单个insert命令插入多个内容。 insert命令可以采用 text tags text tags 形式的多个参数, ....(你可以省略最终的标签,这就是你可以用一个参数调用insert的原因)

w.insert("insert", title_array[x]+"\n", heading, 
         snippet_array[x]+"\n\n")

此外,将标记添加到尾部换行符是决定格式是否扩展到右边距的原因。例如,将以上内容与以下内容进行比较:

w.insert("insert", title_array[x], "heading",
         "\n" + snippet_array[x] + "\n\n")