Tkinter Text Widget Метод поиска - PullRequest
0 голосов
/ 13 мая 2019

Где я могу найти документацию по этому методу?

Я нашел только это 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 Ответ

2 голосов
/ 13 мая 2019

Где я могу найти документацию по этому методу?

Каноническая документация находится в документации по tcl / tk здесь: http://tcl.tk/man/tcl8.5/TkCmd/text.htm#M120 Предполагается, что вы пишете в tclа не python, но довольно просто перевести его на python.Документы Python дают хорошее представление о том, как это сделать.См. Отображение базового tk в tkinter

Что означает «регулярное выражение в стиле Tcl»?

Tkinter - это тонкая оболочка для интерпретатора tcl,Синтаксис регулярных выражений в Tcl несколько отличается от синтаксиса Python.«Регулярное выражение в стиле tcl» означает, что оно соответствует синтаксису регулярного выражения, описанному в справочной странице re_syntax проекта tcl.

У меня также есть вопросмой код: почему self._testo.tag_add ("search", pos, "% s +% sc" (pos, countVar.get ())) возвращает TypeError: объект 'str' не вызывается

Вы получаете сообщение об ошибке, потому что вы пытаетесь вызвать строку, как если бы она была функцией (по сути, вы делаете "foo"(). Это некорректный раздел кода:

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

Вам кажется,опустить % между "%s + %sc" и (pos, countVar.get()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...