【发布时间】:2020-11-19 12:19:34
【问题描述】:
我只想在标签小部件中显示图像。我通过以下代码管理任务:
import tkinter as tk
from PIL import Image,ImageTk
import requests
root=tk.Tk()
url="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/SNice.svg/500px-SNice.svg.png"
imageurl=requests.get(url, stream=True)
image=Image.open(imageurl.raw)
img = ImageTk.PhotoImage(image.resize(size=(500,500)))
origPictureBox = tk.Label(root, image=img, anchor=tk.NW, height=500, width=500)
origPictureBox.config(image=img)
origPictureBox.pack(side=tk.TOP)
root.mainloop()
但是,当我把主要任务放到一个函数中时,图片却没有显示出来:
import tkinter as tk
from PIL import Image,ImageTk
import requests
def initUI(root):
url="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/SNice.svg/500px-SNice.svg.png"
imageurl=requests.get(url, stream=True)
image=Image.open(imageurl.raw)
img = ImageTk.PhotoImage(image.resize(size=(500,500)))
origPictureBox = tk.Label(root, image=img, anchor=tk.NW, height=500, width=500)
origPictureBox.config(image=img)
origPictureBox.pack(side=tk.TOP)
root=tk.Tk()
initUI(root)
root.mainloop()
有人可以解释这种行为吗?如果要显示其他项目(按钮等),它们是可见的,它只是隐藏的图像。
如果我使用类而不是函数 initUI,也会发生同样的情况。
这是我在 stackOverflow 中的第一个问题,如果答案很明显,我很抱歉。
【问题讨论】:
标签: python-3.x tkinter python-imaging-library