Tkinter Text Widget搜索方法

时间:2019-05-13 14:54:11

标签: python tkinter

在哪里可以找到该方法的文档?

我只发现了这个 http://effbot.org/tkinterbook/text.htm 搜索方法使您可以搜索文本。您可以搜索完全匹配(默认),也可以使用Tcl样式的正则表达式(将regexp选项设置为true进行调用)。

“ Tcl样式正则表达式”是什么意思?

我的代码中还有一个问题:为什么self._testo.tag_add("search", pos, "%s + %sc" (pos, countVar.get()))返回TypeError: 'str' object is not callable 预先感谢

def _trova(self):
    t1 = tkinter.Toplevel(self._finestra)
    def t():
        s = e.get()

        start = "1.0"
        while True:
            countVar = tkinter.StringVar()
            pos = self._testo.search(s, start, stopindex="end",count=countVar)
            if not pos:
                break
            self._testo.tag_config("search", background="yellow")
            self._testo.tag_add("search", pos, "%s + %sc" (pos, countVar.get()))
            start = pos + "+1c"

    e= tkinter.Entry(t1).grid(row=0, column=1)
    ok = tkinter.Button(t1, text="OK", command= t).grid(row=0, column=2)

1 个答案:

答案 0 :(得分:2)

  

在哪里可以找到该方法的文档?

规范文档在tcl / tk文档中:http://tcl.tk/man/tcl8.5/TkCmd/text.htm#M120假定您使用的是tcl而不是python,但是将其转换为python相当简单。 python文档很好地介绍了如何执行此操作。参见Mapping basic tk into tkinter

  

“ Tcl样式正则表达式”是什么意思?

Tkinter是围绕tcl解释器的薄包装。 Tcl的正则表达式语法与Python的稍有不同。 “ tcl样式正则表达式”表示它遵循tcl项目的re_syntax手册页中描述的正则表达式语法。

  

我的代码中还有一个问题:为什么self._testo.tag_add(“ search”,pos,“%s +%sc”(pos,countVar.get()))返回TypeError:'str'对象是无法通话

您收到错误消息是因为您试图像对待函数一样调用字符串(本质上,您正在执行"foo"()。这是代码中令人讨厌的部分:

"%s + %sc" (pos, countVar.get())

您似乎在%"%s + %sc"之间遗漏了(pos, countVar.get())