使用tk.Scrollbar更新tk.canvas中的图像

问题描述

我开发了一个小的tkinter GUI,以显示(和导出)以专有格式存储的图像。我设法将数据加载到3D numpy uint8数组中。我想在tkinter.canvas显示该3D阵列的一个切片。为此,我使用了ImageTk.PhotoImage

我在画布下面插入了tk.Scrollbar。我的目标是使用该滚动条让用户通过3D阵列主动“滚动”。基本上,当移动滑块或按下任意箭头时,应该在画布上显示与滑块位置相对应的切片。

现在我有一个问题,我不明白如何将滚动条的范围设置为我的z-Dimension,然后如何将滚动条事件绑定到移动或箭头动作以更新画布。

现在我没有示例代码,因为这是一个更具概念性的问题。

您能指出正确的方向如何解决这个问题吗?

最佳TMC

编辑:照片

Tkinter Gui with Canvas and Scrollbar

解决方法

解决方案是使用tkinter.Scale而不是tkinter.Scrollbar 。附带说明,该命令位于:

scale = tk.Scale(yourTkFrame,from_=min,to=max,orient='horizontal',command=doSomething)

将两个值传递给函数doSomething

使用比例尺可以使用scale.get()方法来检索最小值和最大值之间的位置。然后可以使用这些图像来设置与幻灯片上所选位置相对应的图像。