LINUX.ORG.RU

[python] Надо подружить Canvas, Scrollbar, Entries

 


0

0

[code] from Tkinter import *

draw = Canvas(width=230, height=250, scrollregion = (0,0, 230, 5000)) draw.sbar = Scrollbar(orient=VERTICAL)

for i in range(50): Entry(draw, width=30).pack(side=TOP)

draw['yscrollcommand'] = draw.sbar.set draw.sbar['command'] = draw.yview

draw.sbar.pack(side=RIGHT, fill=Y) draw.pack()

mainloop() [/code]

Как сделать, чтобы скроллбар не просто ерзал, а прокручивал Entries?

★★
from Tkinter import *

draw = Canvas(width=230, height=250, scrollregion = (0,0, 230, 5000))
draw.sbar = Scrollbar(orient=VERTICAL)

for i in range(50):
    Entry(draw, width=30).pack(side=TOP)

draw['yscrollcommand'] = draw.sbar.set
draw.sbar['command'] = draw.yview

draw.sbar.pack(side=RIGHT, fill=Y)
draw.pack()

mainloop()
frpaul ★★
() автор топика
Ответ на: комментарий от frpaul

В canvas надо create_window использовать а не pack. Где-то так:

from Tkinter import *
draw = Canvas(width=230, height=5000, scrollregion = (0,0, 230, 5000))
draw.sbar = Scrollbar(orient=VERTICAL)
frame = Frame(draw)
draw.create_window(0, 0, window=frame, width=230, height=5000, anchor=N+W)
for i in range(50):
    Entry(frame, width=30).pack(side=TOP)
draw['yscrollcommand'] = draw.sbar.set
draw.sbar['command'] = draw.yview
draw.sbar.pack(side=RIGHT, fill=Y)
draw.pack()
mainloop()

xtin
()
Ответ на: комментарий от xtin

Благодетель! Спасибо огромное!

frpaul ★★
() автор топика
Ответ на: комментарий от xtin

OK. А как теперь забиндить перемещение скроллбара на нажатие клавиш (Up, Down)? Точнее так: какие параметры canvas(scrollbar) нужно биндить?

frpaul ★★
() автор топика
Ответ на: комментарий от FeiWongReed

>Не холивора ради, но в каких случаях, кроме создания простых наколенных утилиток, нужен TK?

Жаль, что по существу - ничего.

Tk нужен, прежде всего, чтобы научиться на Python хоть какой-то GUI писать.
Приведенный мной код - это просто пример, чтобы было проще разобраться. Свое быдло-поделие я пока не выкладываю, ибо оно ужасно, хотя и делает то, что мне нужно :)
Хотя вот тут есть старый код (не для слабонервных) - это читалка файлов Descript.ion, сгенерированных FAR.
http://www.linux.org.ru/view-message.jsp?msgid=3980066&lastmod=1251489256077

frpaul ★★
() автор топика
Ответ на: комментарий от xtin

Клавиши Up Down, оказывается, привязаны по умолчанию.
Переформулирую вопрос: Как при загрузке приложения передать фокус скроллбару?

frpaul ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.