Да, есть способ, хотя он потребует определенной работы.Основная идея заключается в привязке к <ButtonPress-1>
, <B1-Motion>
и <ButtonRelease-1>
.В этих привязках вы должны будете отслеживать, где был курсор, когда он был нажат, и где он находится, когда его перетаскивают.Затем вам нужно будет вычислить, какие символы находятся в этом ограничивающем прямоугольнике, и добавить тег sel
к этим символам по отдельности.
Это должно быть довольно простым, если вы используете шрифт фиксированной ширины с включенным переносомвыкл.Если шрифт переменной ширины и / или разрешить перенос, проблема станет намного сложнее.В конечном счете, все сводится к небольшой математике, пока пользователь тащит мышь.
Для вдохновения вы можете увидеть, как кто-то сделал это в tcl / tk на странице выбора блока в вики tcler .