Полосы прокрутки для изображения.jpg на холсте Tkinter в Python
Я пытаюсь сделать jpeg на холсте с прокруткой, но я не могу заставить свои полосы прокрутки работать. Вот пример кода:
from Tkinter import *
import Image, ImageTk
root = Tk()
frame = Frame(root, bd=2, relief=SUNKEN)
frame.grid_rowconfigure(0, weight=1)
frame.grid_columnconfigure(0, weight=1)
xscrollbar = Scrollbar(frame, orient=HORIZONTAL)
xscrollbar.grid(row=1, column=0, sticky=E+W)
yscrollbar = Scrollbar(frame)
yscrollbar.grid(row=0, column=1, sticky=N+S)
canvas = Canvas(frame, bd=0, xscrollcommand=xscrollbar.set, yscrollcommand=yscrollbar.set)
canvas.grid(row=0, column=0, sticky=N+S+E+W)
File = "jpg filepath here"
img = ImageTk.PhotoImage(Image.open(File))
canvas.create_image(0,0,image=img, anchor="nw")
xscrollbar.config(command=canvas.xview)
yscrollbar.config(command=canvas.yview)
frame.pack()
root.mainloop()
1 ответ
Решение
Вы должны указать холсту, какую часть пространства для рисования прокручивать. Используйте что-то вроде:
canvas.config(scrollregion=canvas.bbox(ALL))
Дополнительную информацию можно найти здесь: http://effbot.org/tkinterbook/canvas.htm