Python 中 Tkinter 画布上 .jpg 图像的滚动条

Posted

技术标签:

【中文标题】Python 中 Tkinter 画布上 .jpg 图像的滚动条【英文标题】:Scrollbars for a .jpg image on a Tkinter Canvas in Python 【发布时间】:2011-07-19 22:00:07 【问题描述】:

我正在尝试在画布上制作可滚动的 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()

【问题讨论】:

您是否忘记在第二次导入中输入from PILImageand Imagetk是其他模块? 【参考方案1】:

您需要告诉画布要滚动绘图空间的哪一部分。使用类似的东西:

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

更多信息可以在这里找到:http://effbot.org/tkinterbook/canvas.htm#coordinate-systems

【讨论】:

以上是关于Python 中 Tkinter 画布上 .jpg 图像的滚动条的主要内容,如果未能解决你的问题,请参考以下文章

使用鼠标在 python tkinter 画布上绘制并获取指向列表的点?

如何使用 PYTHON 的“tkinter”模块在画布上显示图像,特别适用于 linux?

Python3 tkinter基础 Canvas create_text 在画布上添加文字

Python3 Tkinter基础 Canvas create_text 在画布上添加文字

Python Tkinter。以画布形式打开 BMP 文件

Python tkinter 将画布保存为 postscript 并添加到 pdf