Видимые строки в текстовом виджете Tkinter - PullRequest
1 голос
/ 06 января 2011

Есть ли способ узнать, какие строки в данный момент видны в текстовом виджете Tkinter? Я пытаюсь сделать полосу прокрутки.

В настоящее время я пытаюсь согласовать мою полосу прокрутки с другими методами прокрутки (т. Е. Клавишами со стрелками и колесом прокрутки). Так что, когда я прокручиваюсь с помощью клавиш со стрелками или мыши, моя полоса прокручивается тоже.

Ответы [ 3 ]

3 голосов
/ 06 января 2011

Вы можете получить символ (и, следовательно, номер строки) в позиции пикселя, используя индекс @x,y (например: @0,0 для самого верхнего левого видимого символа). Так как вы знаете ширину и высоту виджета (используя методы winfo_width и winfo height), вы можете рассчитать, какие линии находятся внизу виджета.

Вы также можете использовать метод yview, чтобы получить относительную часть текста, который отображается (например: значение .5 означает, что вы находитесь на полпути документа)

1 голос
/ 06 января 2011

Пожалуйста, смотрите http://effbot.org/zone/tkinter-scrollbar-patterns.htm

Здесь содержится информация о том, как работает класс Scrollbar.

Если вы хотите реализовать свою собственную полосу прокрутки, вам просто нужно отправить сообщения в текстовое поле, с какой позицией вы находитесь в диапазоне (0,1), и он вернет сообщение, сообщающее, на какой диапазон он нацелен.

1 голос
/ 06 января 2011

Зачем создавать собственную полосу прокрутки? Просто используйте тот, который уже есть: http://www.tkdocs.com/tutorial/morewidgets.html

Обычно вы используете методы виджета yview / xview, чтобы узнать, что видно, см., Например, документацию по yview. http://www.tcl.tk/man/tcl8.4/TkCmd/text.htm#M146

Для получения более подробной информации о полосах прокрутки см .: http://wiki.tcl.tk/1455

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