Форум сайта python.su
Подскажите пожалуйста, как вставить scrollbar в поле Text.
Пытался так, но Scrollbar не встает где нужно, а теснится в правом нижнем углу. Хотя текстовым полем он все таки управляет.
# -*- coding: utf-8 -*-
#!/usr/bin/python
from Tkinter import *
import hashlib
root = Tk()
root.title("Programm")
root.geometry('450x380+100+100')
def Hash(event):
print ""
label1 = Label(root, text=u'1')
label1.config(height=1, width=10)
label1.pack(expand=YES, fill=BOTH)
text1=Text(root,height=4,width=60,font='Arial 10',wrap=WORD)
text1.pack()
label2 = Label(root, text=u'2')
label2.config(height=1, width=10)
label2.pack(expand=YES, fill=BOTH)
text2=Text(root,height=4,width=60,font='Arial 10',wrap=WORD)
text2.pack()
label3 = Label(root, text=u'3')
label3.config(height=1, width=10)
label3.pack(expand=YES, fill=BOTH)
text3=Text(root,height=4,width=60,font='Arial 10',wrap=WORD)
text3.pack()
button = Button(root, text = "Bust", width = 10, height = 1)
button.bind("<Button-1>", Hash)
button.pack()
scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill = Y)
scrollbar.config(command = text1.yview)
text1.config(yscrollcomman=scrollbar.set)
root.mainloop()
Офлайн
В виджете Текст скролбар встроен по умолчанию.
Офлайн
то есть этот ползунок к нему никак не привязать?
Офлайн
Его не надо привязывать ибо он там уже есть, если вы начнете писать текст вы это увидите.
Но если вам надо зачем-то второй скрол, то можно конечно. Главное правильно его разместить. Рекомендую использовать grid, а не pack менеджер, возможно его поведение для вас будет более очевидным. То что скролл располагается в углу и имеет маленький размер это вопрос правильного использования менеджера (оконного или компоновки не помню как это называется).
Офлайн
Я извиняюсь. Вероятно я путаю по поводу скробара по умолчанию. Просто правильно расположите виджеты.
Офлайн
from Tkinter import *
from ScrolledText import ScrolledText
tk = Tk() # окно верхнего уровня
txt = ScrolledText(tk) # виджет текста с прокруткой
txt.pack() # виджет размещается
tk.mainloop()
Офлайн