【问题标题】:How to change extracted specified range of text from Entry into another? (tkinter)如何将提取的指定文本范围从条目更改为另一个? (tkinter)
【发布时间】:2021-09-27 03:14:02
【问题描述】:
phqitemmaintit["text"][0:8] = Font(fg="Red")

以上是提取的文本,但 Fontfg 方法不起作用。

如何将其修复为Label 的彩色文本?

【问题讨论】:

  • phqitemmaintit.config(fg="red")?如果你想在一个标签中使用不同的颜色,那么我认为你不能,除非你做一些更合乎逻辑的工作
  • 如果您使用tkinter.Text 小部件,则可以使用标签。它们允许您更改特定文本部分的颜色/字体。我不认为你可以使用tkinter.Label
  • 除非我这样做,否则我必须将文本切成彩色,这样完成页面布局比以前更合乎逻辑。
  • @DevOpps 为您提供帮助:text.tag_config("red_fg_tag", foreground="red")text.tag_add("red_fg_tag", "1.0", "1.8")。它会创建一个名为"red_fg_tag" 的标签,然后将其添加到文本框的前 8 个字符中。
  • @PCM 这样的话就不需要重叠了,只是把文本分割成标签,比如一个标签只包含部分文本,但是是的,还是会比较繁琐,更好使用tkinter.Text 小部件

标签: python tkinter colors


【解决方案1】:

字符串没有字体。您不能提取文本,然后向其中添加字体信息。至少,python 或tkinter 不能以任何方式使用它。

字体信息是小部件的一部分,而不是文本的一部分。如果您想为文本字符串的一部分着色,唯一受支持的方法是使用 Text 小部件,在这种情况下,您将标签应用于一系列字符,然后将该标签配置为具有颜色。

这是一个例子:

import tkinter as tk

root = tk.Tk()
text = tk.Text(root, width=30, height=1)
text.pack(fill="both", expand=True)

text.tag_configure("red", foreground="red")
text.insert("end", "0123456789Hello, world")
text.tag_add("red", "1.0", "1.8")

root.mainloop()

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2019-11-11
    • 1970-01-01
    相关资源
    最近更新 更多