我最近开始编写代码,并决定从python开始。我想制作一个程序,从文件打开对话框加载一个图像,然后在我的root()中显示该图像。这是可行的,但当我将加载部分放入函数时,它会显示图像应该在的空间,但不会显示图像。我的代码是:
from tkinter import *
from tkinter import filedialog
from shutil import copyfile
from PIL import ImageTk, Image
import numpy as np
import cv2
root = Tk()
#root.withdraw()
topFrame = Frame(root)
topFrame.pack()
bottomFrame = Frame(root)
bottomFrame.pack(side=BOTTOM)
def odaberiSliku():
root.filename = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("jpeg files","*.jpg"),("all files","*.*")))
img = (root.filename)
copyfile(img,"test.jpg")
#root.deiconify()
photo = ImageTk.PhotoImage(Image.open("test.jpg"))
label = Label(bottomFrame, image=photo)
label.pack()
return
button_load = Button(topFrame, text="Odaberi sliku", command=odaberiSliku)
button_load.pack()
root.mainloop()
我有一扇这样的窗户:
谢谢你。你知道吗
由于
photo
是函数中的局部变量,因此与它相关联的任何对象(在本例中是图像)在返回时都会被销毁。换句话说,函数返回后,就没有图像可显示了。解决方案:使变量成为全局变量。你知道吗相关问题 更多 >
编程相关推荐