tkinter - 您可以通过按下按钮更改 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 画布中
如何通过按下按钮使图像发生变化?
解决方案
推荐阅读
- java - Java Swing,所有图像都出现像素化
- mysql - 如何定义方法内部存在的变量外部方法?
- amazon-web-services - 如何手动回滚 Lambda 函数的 CloudFormation 部署?
- javascript - 双击后来自 iOS 设备的 Safari 浏览器不触发 Java 脚本功能
- javascript - 每当添加新数据时,FlatList 都会多次重新呈现 Firebase 中的数据
- c# - 如何在不闪烁的情况下更新 ComboBox ItemsSource
- django - beanstalk django http5xx 错误
- dns - 联合王国 使用 DNSSEC 进行 dns 区域验证
- node.js - 使用 npm API 检索带有版本的私有 npm 包列表,可能吗?
- wordpress - 买家购买特定数量价格时更改运费