Tkinter Text selection_get () Ошибка - PullRequest
       4

Tkinter Text selection_get () Ошибка

5 голосов
/ 17 августа 2011

В настоящее время я работаю над приложением Tkinter, которое использует в качестве основного виджета TextWidget.

Когда я пытаюсь получить текущий выбор, возникает ошибка, но я не понимаю, почему ...

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Users\Lina\Documents\Programmation\VPE project.py", line 502, in rechercher
    texte=code_text.selection_get()
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 626, in selection_get
    return self.tk.call(('selection', 'get') + self._options(kw))
TclError: PRIMARY selection doesn't exist or form "STRING" not defined

Спасибо.

РЕДАКТИРОВАТЬ: я знаю, почему это не работает, я привязал к Ctrl-F, но он уже связан в TextWidgets (по умолчанию, он делает то же самое, что LeftArrow). Теперь проблема в том, как мне от этого избавиться?

1 Ответ

5 голосов
/ 18 августа 2011

Эта ошибка просто говорит вам, что ничего не выбрано. Это не ошибка сама по себе , это просто способ сказать "ничего не получится". Это может быть правдой, или вы можете выбрать что-то, но это не экспортируется в «выбор». Если у опции exportselection в виджете установлено значение true, все, что вы выберете , должно быть скопировано в выборку . Если это не так, в вашем вопросе недостаточно кода, чтобы ответить, почему.

Однако, чтобы ответить на вопрос «как получить текст, выделенный в виджете»: текст, выделенный в текстовом виджете, имеет тег «sel». Вы можете получить этот текст с textwidget.get('sel.first', 'sel.last')

Использование метода get с тегами более правильно, чем использование selection_get, поскольку в виджете можно ничего не выделять, но при этом selection_get возвращать что-то (например: возвращать любой другой виджет, экспортированный в выборку. )

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