【发布时间】:2020-09-22 16:51:08
【问题描述】:
我正在尝试实现一个简单的 python GUI 程序,它允许用户选择照片并在窗口中查看以供参考。
这是我的代码:
from tkinter import *
from tkinter.filedialog import askopenfilename
from PIL import Image, ImageTk
filename = "none"
photo1 = ImageTk.PhotoImage
def fileSelect():
global filename
filename = askopenfilename() #input file
global photo1
imageShow = Image.open(filename)
imageShow = imageShow.resize((300, 350), Image.ANTIALIAS)
photo1 = ImageTk.PhotoImage(imageShow)
window = Tk() #Creating window
window.title("Example") #Title of window
imageFirst = Image.open("first.jpg")
imageFirst = imageFirst.resize((300, 350), Image.ANTIALIAS)
photo1 = ImageTk.PhotoImage(imageFirst)
Label (window, image=photo1, bg="white").pack(pady=30) #Display image
Button(window, text="Select File", font="none 16", width=15, command=fileSelect).pack(pady=15)
window.mainloop()
如您所见,photo1 被声明为全局以允许fileSelect() 函数访问和更改它。程序启动时,会显示一个默认的初始图像,稍后将被用户选择的图像替换。
我面临的问题是用户选择图像后,原始照片消失但新选择的图像没有出现。我不明白为什么会这样。请问有什么帮助吗?
【问题讨论】:
-
使用
config()方法更新您的标签 -
将您的布局管理器与您的方法分开以调用标签实例,方法是将其设置为如下变量:
my_label = tk.Label(....)和my_label.pack()file_select中的下一步,您需要 更新 通过调用实例my_label.configure(image=photo1)你的图像
标签: python image tkinter photo