2013-02-25 3 views
0

У меня есть главное окно в моей программе в текстовом виджете, с вертикальной полосой прокрутки на правой стороне, вдоль всей его высоты - с обычным кодом:Tkinter: моя полоса прокрутки скрывает некоторые символы

yscrollbar=Scrollbar(mytext, orient=VERTICAL, command=mytext.yview) 
mytext["yscrollcommand"]=yscrollbar.set 

Это просто раздражает, что при вставке/вводе текста последние 1-2 символа перед возвратом строки скрыты полосой прокрутки.

Есть несколько простых способов рассказать текстовому виджету, чтобы вернуть строку, прежде чем попасть в полосу прокрутки?

PS главного окно является изменяемым пользователем, поэтому я ищу какое-то общее решение ...

+0

Можете ли вы показать [SSCCE] (http://sscce.org/)? Я попытался создать минимальный экран tkinter с помощью только текстового виджета и полосы прокрутки, у вас не было проблемы, которую вы описали. – Junuxx

+1

Похоже, вы кладете полосу прокрутки в окно, а не на нее. Можете ли вы показать, как вы создаете полосу прокрутки, и команду пакета или сетки, которую вы используете, чтобы сделать ее видимой? –

+0

@BryanOakley вы совершенно правы - извините, теперь кажется очевидным: это должен был быть mytext = Text (root, ...) и Scrollbar (root, ...). Спасибо вам обоим! – alessandro

ответ

3

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

Если вы хотите, чтобы визуальный эффект полосы прокрутки находился в текстовом виджете, создайте фрейм и дайте ему ширину границы 1 и рельеф «затонувшего». Затем дайте вашему текстовому виджету ширину границы нуля. Поместите как текстовый виджет, так и полосу прокрутки в этот кадр, и полоса прокрутки будет выглядеть внутри текстового виджета.