Scroll bars for .jpg image on Tkinter canvas in Python

I am trying to make jpeg on canvas scrollable, but I cannot get my scrollbars to work. Here is a sample code:

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() 
+4
source share
1 answer

You need to tell the canvas how much of the drawing space you want to scroll. Use something like:

 canvas.config(scrollregion=canvas.bbox(ALL)) 

Further information can be found here: http://effbot.org/tkinterbook/canvas.htm#coordinate-systems

+4
source

Source: https://habr.com/ru/post/1344652/


All Articles