首页 > 解决方案 > 您可以通过按下按钮更改 gui 中的图片吗?(Python

问题描述

我正在处理图片,我希望用户能够选择带有按钮的图像。但相反,什么都没有改变。你是怎样做的?

import tkinter as tk
from PIL import ImageTk, Image
n = 0
x = 0
def func(n):
    is_ = [
        Image.open(r"image_file1.png"),
        Image.open(r"image_file2.png"),
        Image.open(r"image_file3.png")
    ]
    global x
    x = n
    i2 = ImageTk.PhotoImage(is_[x])
    c2.create_image(50, 50, image = i2)
    
root = tk.Tk()
i = Image.open(r"C:\Users\User\Desktop\0mega.patch\2. Python\LucasPatrykRiley\Pfps\Clear Background.png")
i2 = ImageTk.PhotoImage(i)


c = tk.Canvas(root, height = 600, width = 600)
c.pack()

f = tk.Frame(root)

c2 = tk.Canvas(f, height = 100, width = 100, bg = "Blue")
c2.create_image(50, 50, image = i2)
c2.pack()

b = tk.Button(f, text = ">", command = func(x + 1))
b.pack()

b2 = tk.Button(f, text = "<", command = func(x - 1))
b2.pack()


c.create_window(200, 500, window = f)

root.mainloop()

is_是所有图像的列表;
x是更新的用户选择,因此您可以拍摄上一张/下一张图像;
c是放置所有东西的画布。我选择了画布,因为画布可以包含图像。
这是主文件的片段,其中画布具有实际背景的图像。
小部件被打包到 f 框架中,后者被放置到 c 画布中

如何通过按下按钮使图像发生变化?

标签: tkintertkinter-canvas

解决方案


推荐阅读