我有很多想要展示的喷雾锥体图像。然而,每张照片都是使用不同的机器设置拍摄的,例如不同的液体量或不同的压力。我想构建一个图,用户可以将滑块放置到每个参数组合的不同位置。假设我有三个参数,每个参数可以是 1、2 或 3...根据参数组合,应该显示在这些设置下拍摄的喷雾锥图片。
困难的是,这里的大多数动态情节问题都没有计算任何内容。
有什么想法吗?
PS:喷雾锥的图像都是灰度和.JPEG
可以使用
tkinter.Scale
的 command
参数并将 tkinter.Label.update
添加到回调中来完成,如另一个优秀答案所示:https://stackoverflow.com/a/25745136
import functools
import tkinter as tk
def _slider_callback(slider: tk.Scale, value_list: list, label: tk.Label, value: int | float):
newvalue = min(value_list, key=lambda x: abs(x - float(value)))
slider.set(newvalue)
label.configure(image=img_list[newvalue - 1])
root = tk.Tk()
# Put your image names into img_list however
total_img = 3
img_list = [tk.PhotoImage(file=f'img{i + 1}.png') for i in range(total_img)]
img_label = tk.Label(root, image=img_list[0])
img_label.grid(row=0, column=0)
img_slider = tk.Scale(root, from_=1, to=3, orient='horizontal')
img_slider.configure(command=functools.partial(_slider_callback, img_slider, range(1, total_img + 1), img_label))
img_slider.grid(row=1, column=0)
root.mainloop()