-2

为了了解有关 Python 和 tkinter 的更多信息,我正在编写一个 YouTube 下载器。我有一个单独的窗口,您可以在其中添加链接并按下一个按钮,该按钮应在我的主窗口中显示缩略图和标题。现在我刚刚得到了标题。

这是功能:

def display_yt_video(self, title):

    thumbnail = tk.PhotoImage(file='thumbnail.gif')

    photo_label = tk.Label(root, image=thumbnail)
    photo_label.pack()

    yt_label = tk.Label(gui.bottomFrame, text=title)
    yt_label.pack()

似乎他找不到正确的“根”对象,没有显示错误。我尝试在多个框架中使用窗口“根”。我设法以这种方式在另一个程序中打开了这张图片。

这是我的精简代码:

from pytube import YouTube
import tkinter as tk
import urllib.request

root = tk.Tk()

class Gui:

    def add_url_window(self):

        ck_button = tk.Button(url_topframe, text='Add to Queue')
        ck_button.bind('<Button-1>', dl.check_url)
        ck_button.grid(row=2, column=2, padx=10)


class Downloader():

    def check_url(self, event):
        #try:
        url = self.retrieve_input()
        thumbnail_url = YouTube(url).thumbnail_url
        urllib.request.urlretrieve(thumbnail_url, "thumbnail.gif")
        yt_title = YouTube(url).title
        print('done')
        dl.display_yt_video(yt_title)



    def display_yt_video(self, title):

        thumbnail = tk.PhotoImage(file='thumbnail.gif')

        photo_label = tk.Label(root, image=thumbnail)
        photo_label.pack()

        yt_label = tk.Label(gui.bottomFrame, text=title)
        yt_label.pack()



dl = Downloader(root)
gui = Gui()
root = tk.Tk()
menu = tk.Menu()


root.config(menu=menu)
gui.build_window()


root.mainloop(
4

1 回答 1

0

你的代码没有运行。除此之外,我认为您的问题可能会在这里描述:Why does Tkinter image not show if created in a function?

于 2018-08-01T14:34:25.983 回答