来自网址的图片不会显示在tkinter窗口中

时间:2019-05-06 11:09:50

标签: python python-3.x tkinter

我的代码在一定程度上可以正常工作,图片的占位符以正确的大小显示,但是图片本身不会显示在我的页面上。

我正在尝试整理来自新闻API的这些图像的尺寸

self.nlbl_news_one = Label(self.fr_news, text="1.", font=DATA_FONT)
self.nlbl_headline_one = Label(self.fr_news, wraplength=350, justify="left", font=DATA_FONT)
self.nlbl_image_one = Label(self.fr_news)
self.nbut_link_one = Button(self.fr_news, text="link", font=URL_FONT, 
                            command=lambda: self.headline_one(data)).grid(row=2, column=3)
self.nlbl_news_one.grid(row=2, column=0)
self.nlbl_headline_one.grid(row=2, column=1, padx=15, pady=7)
self.nlbl_image_one.grid(row=2, column=2)

self.nlbl_image_one.config(image=self.import_image(str(data["articles"][0]["urlToImage"]))


def import_image(self, url):
    from PIL import Image, ImageTk
    from urllib.request import urlopen, urlretrieve

    fd = urlretrieve(url, "image")
    img = Image.open("image")
    img_small = img.resize((200, 200), Image.ANTIALIAS)
    return ImageTk.PhotoImage(img_small)

这是更大的代码块的一部分,但是这些是紧密结合在一起的行。我只是对如何看不到图片感到困惑,却出现了占位符。

1 个答案:

答案 0 :(得分:0)

更改以下内容:

self.nlbl_image_one.config(image=self.import_image(str(data["articles"][0]["urlToImage"]))

收件人:

img = self.import_image(str(data["articles"][0]["urlToImage"]))
self.nlbl_image_one.config(image = img)
self.nlbl_image_one.image = img

您需要执行此操作以避免垃圾回收删除图像。