Найти - Пользователи
Полная версия: tkinter. Как сделать холст с прокруткой (scrollbar)?
Начало » Python для новичков » tkinter. Как сделать холст с прокруткой (scrollbar)?
1
plustilino
Требуется, чтобы сам холст был большим (например, 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кроллер все-равно оказывается вертикальным.
sp3
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()
plustilino
Спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB