2011-01-05 3 views
1

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

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

ответ

2

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

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

1

Зачем нужна ваша собственная полоса прокрутки? Просто используйте тот, который уже существует: 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

+0

Спасибо, это то, что мне было нужно. Я делаю свой собственный полоса прокрутки в основном по эстетическим соображениям. Видя, как вы не можете изменить внешний вид полосы прокрутки Tkinter в Windows. – rectangletangle

1

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

Это информация о том, как работает класс Scrollbar.

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

Смежные вопросы