Изображение из URL не будет отображаться в окне tkinter - PullRequest
0 голосов
/ 06 мая 2019

Мой код работает в определенной степени, заполнитель для изображения отображается в правильном размере, но само изображение не будет отображаться на моей странице.

Я пытаюсь разобраться с размерами этих изображений, которые приходят из 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 голосов
/ 06 мая 2019

Измените следующее:

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

Это необходимо сделать, чтобы избежать удаления изображения из сборки мусора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...