2016-10-28 3 views
0

Я пытаюсь создать полосу прокрутки в текстовом виджете. Я ищу в google и видел существующие вопросы SO, но я не получаю правильный пример.Добавить атрибут в существующие элементы в tkinter

mycontainer = Text(root) 
scrollbar = Scrollbar(mycontainer) 
scrollbar.pack(side = RIGHT, fill=Y) 

#here I want to add the attribute of yscrollcommand into the mycontainer 

mycontainer = Text(yscrollcommand = scrollbar.set) #Not working 

for line in range(100): 
    mycontainer.insert(END, "This is line number " + str(line)) 


mycontainer.place(x=5, y=40, width=500, height=500) 
scrollbar.config(command = mycontainer.yview) 

Как я могу сделать это правильно?

ответ

2

Одна из проблем заключается в том, что вы создаете mycontainer после создания экземпляра Scrollbar. Это означает, что полоса прокрутки исчезает. Попробуйте

mycontainer.config(yscrollcommand=scrollbar.set) 

вместо этого. Другой (небольшая) проблема заключается в том, что вам нужно, чтобы закончить свои вставки с LineBreak, как это:

for line in range(100): 
    mycontainer.insert(END, "This is line number " + str(line) + "\n") 

Третья проблема заключается в том, что scrollbarslider не отображается правильно (даже не с scrollbar.activate('slider')). Я должен сказать, что я не мог решить последнюю проблему. Чтобы увидеть все опции для команды .config(), введите mycontainer.keys() и scrollbar.keys().

+0

Хорошо, у меня больше не возникала третья проблема, когда я использовал точно такой порядок операторов, как этот вопрос показывает :) И мне не нужно 'scrollbar.activate ('slider')' – Aemyl

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