Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 18, 2011 14:53:13

plustilino
Зарегистрирован: 2011-08-01
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter. Как сделать холст с прокруткой (scrollbar)?

Требуется, чтобы сам холст был большим (например, 1500х1500 точек), а в рабочей области виднелась лишь его часть (например, 800x800 точек). Вертикальный и горизонтальный скролбары должены позволять прокручивать холст и отображать изначально скрытые области.

Подключить скролбар к холсту у меня получилось. Но дальше не могу понять, что надо сделать?

from tkinter import *

window = Tk()

canv = Canvas(window,width=400,height=400,bg="lightgreen")
x_scr = Scrollbar(window,command=canv.xview)
y_scr = Scrollbar(window,command=canv.yview)
canv.configure(xscrollcommand=x_scr.set)
canv.configure(yscrollcommand=y_scr.set)

canv.grid(row=0,column=0)
x_scr.grid(row=1,column=0,sticky=EW)
y_scr.grid(row=0,column=1,sticky=NS)
window.mainloop()
И почему-то x-cкроллер все-равно оказывается вертикальным.



Офлайн

#2 Сен. 18, 2011 18:45:23

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

tkinter. Как сделать холст с прокруткой (scrollbar)?

from tkinter import *

window = Tk()

canv = Canvas(window,width=400,height=400,bg="lightgreen")
canv.config(scrollregion=(0,0,1500, 1500))

x_scr = Scrollbar(window,command=canv.xview,orient='horizontal')
y_scr = Scrollbar(window,command=canv.yview)
canv.configure(xscrollcommand=x_scr.set)
canv.configure(yscrollcommand=y_scr.set)

canv.grid(row=0,column=0)
x_scr.grid(row=1,column=0,sticky=EW)
y_scr.grid(row=0,column=1,sticky=NS)

canv.create_line(10,10,500,500,width=3)
window.mainloop()



Офлайн

#3 Сен. 18, 2011 23:17:26

plustilino
Зарегистрирован: 2011-08-01
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter. Как сделать холст с прокруткой (scrollbar)?

Спасибо



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version