【问题标题】:scrolled text python change ceratin background text滚动文本python更改ceratin背景文本
【发布时间】:2018-08-24 16:16:06
【问题描述】:

我正在尝试使用 tkinter 编写文本编辑器。 这是标记函数:

self.text.tag_add("Mark",tk.SEL_FIRST,tk.SEL_LAST)
self.text.tag_config("Mark",background="yellow",foreground="black")

这是取消标记功能

self.text.tag_add("UnMark",tk.SEL_FIRST,tk.SEL_LAST)
self.text.tag_config("UnMark",background="white",foreground = "black")

但问题是当我标记文本然后取消标记时,我无法再次标记它。 当我尝试再次标记我未标记的文本时,标记功能不起作用。

【问题讨论】:

    标签: python tkinter background scrolledwindow


    【解决方案1】:

    原因是“UnMark”标签的优先级高于“Mark”标签。可以添加“Mark”标签,但“UnMark”的配置优先。

    我建议不要使用“UnMark”标签,当您不想标记某些内容时,只需删除“Mark”标签即可。

    【讨论】:

    • 有没有不用sel_first就可以得到单词位置的方法?
    • 通过 char 或其他方式获取位置,而不是 sel_first,用于“config”功能
    • @OfekRozenkrantz:我不明白你的问题。 sel_first 用于查找选择的开始。那可能是一个词,也可能不是一个词。文本小部件可以通过search 方法进行搜索。我不知道查找单词与添加和删除标签有什么关系,这就是这个问题的意义所在。
    • 感谢您快速回复我,搜索方法的信息对我很有用。我决定为每个字符添加一个标签,并为每个选择的字符删除标签。我使用搜索方法查找每个选择的字符的索引。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    相关资源
    最近更新 更多