Python 中带滑块的动态图

问题描述 投票:0回答:1

我有很多想要展示的喷雾锥体图像。然而,每张照片都是使用不同的机器设置拍摄的,例如不同的液体量或不同的压力。我想构建一个图,用户可以将滑块放置到每个参数组合的不同位置。假设我有三个参数,每个参数可以是 1、2 或 3...根据参数组合,应该显示在这些设置下拍摄的喷雾锥图片。

困难的是,这里的大多数动态情节问题都没有计算任何内容。

有什么想法吗?

PS:喷雾锥的图像都是灰度和.JPEG

python image plot graphics slider
1个回答
0
投票

可以使用

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()

以下是我的示例图像的结果:

© www.soinside.com 2019 - 2024. All rights reserved.