我问题的题目可能相当混乱,但我不知道该怎么说才好。在
基本上,当我把我的代码放在一个按钮命令的def中时,它不起作用,但是代码在def之外正常工作。在
这是不起作用的代码:
app = Tk()
app.geometry("1000x800")
def search():
tx1get = tx1.get()
Label(app, text="You Entered: \"" + tx1get + "\"").grid(row=1, column=0)
fd = urllib.urlopen("http://ia.media-imdb.com/images/M/MV5BMTc2MTU4ODI5MF5BMl5BanBnXkFtZTcwODI2MzAyOA@@._V1_SY317_CR7,0,214,317_AL_.jpg")
imgFile = io.BytesIO(fd.read())
im = ImageTk.PhotoImage(Image.open(imgFile))
image = Label(app, image = im, bg = "blue")
image.grid(row=2, column=0)
tx1=StringVar()
tf = Entry(app, textvariable=tx1, width="100")
b1 = Button(app, text="Search", command=search, width="10")
tf.grid(row=0, column=0)
b1.grid(row=0, column=1)
app.mainloop()
但是,如果我删除def中的最后5条线并将它们放在def外部,则会起作用:
^{pr2}$如有任何帮助或建议,我们将不胜感激!在
您的代码无法工作,因为
search
中的im
一旦search
完成,就超出了范围。这样,ImageTk对象也会消失。要防止这种情况,请使im
全局化(一种可能的解决方案):相关问题 更多 >
编程相关推荐