问题描述
我已成为 YouTube 下载器,但仪表进度不遵循下载此视频的功能 我希望仪表从视频下载开始,当下载完成时仪表完成
import wx
from pytube import YouTube
from time import sleep
from threading import Thread
class Tube(wx.Frame):
def __init__(self,*args,**kwargs):
super(Tube,self,**kwargs).__init__(parent=None,id=wx.ID_ANY,title="New Frame",size=(600,400))
self.Centre()
self.panel = wx.Panel(self,name="New Panel")
self.textLink = wx.StaticText(parent=self.panel,label="Edit YouTube URL",pos=(100,50))
self.editLink = wx.TextCtrl(parent=self.panel,size=(200,25),pos=(250,50))
self.downloadButton = wx.Button(parent=self.panel,label="Download Video",100))
self.downloadButton.Bind(event=wx.EVT_BUTTON,handler=self.thread,source=self.downloadButton)
self.progress = wx.Gauge(parent=self.panel,range=100,pos=(200,200))
self.Show()
def progressBar(self,**kwargs):
for value in range(101):
wx.CallAfter(self.progress.SetValue,value)
sleep(0.2)
def Download(self,**kwargs):
self.video = YouTube(self.editLink.GetValue())
self.stream = self.video.streams.get_lowest_resolution()
self.stream.download()
def thread(self,**kwargs):
self.threads = []
self.thread1 = Thread(target=self.Download)
self.thread2 = Thread(target=self.progressBar)
self.threads.append(self.thread1)
self.threads.append(self.thread2)
for thread in self.threads:
thread.setDaemon(True)
thread.start()
if __name__ == '__main__':
app = wx.App()
screen = Tube()
app.MainLoop()
解决方法
为什么不使用 wxProgressDialog?
检查对话框示例以了解详细信息...
谢谢。