I'm trying to make a jpeg on a canvas scrollable but I can't seem to get my scrollbars to work. Here's some example 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()

解决方案

You need to tell the canvas what part of the drawing space to scroll. Use something like:

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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐