繁体   English   中英

如何获取tkinter.Text Widget中某个区域的字体颜色?

[英]How to get the font color of a certain area in tkinter.Text Widget?

所以我实际上是在创建一个编码编辑器,显然我需要在屏幕上显示代码时对其进行着色。 我成功地做到了这一点,但现在,每当编辑已经着色的代码时,文本仍然是彩色的。 (例如,用户写“打印”并且它变色。然后他从它的末尾删除't'并且它变成'prin'并且它仍然是彩色的)我希望有一种方法来检测字体颜色tkinter.Text 索引。 例如:

textArea.get_color("1.0", "1.4"))
# Returns: Black (or whatever color)

所以如果它不是正确的词并且仍然是彩色的,应用程序可以改变它。 谁能帮我?

您可以通过首先获取该字符的标签列表,然后获取最高优先级标签的前景颜色来获取任何文本 position 处的颜色。 如果没有带有前景色的标签,则颜色是为文本小部件配置的任何颜色。

例如,它可能类似于以下内容:

def get_color(index):
    for tag in text.tag_names(index)[::-1]:
        fg = text.tag_cget(tag, "foreground")
        if fg != "":
            return fg
    return text.cget("foreground")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM