Portál AbcLinuxu, 2. května 2025 20:55
from yt_dlp import YoutubeDL
from PySide2.QtCore import \
Qt, QTimer
class Helper:
def __init__(self):
self.pointer = 0
self.lines = 0
self.content = []
self.videoName = ""
...
...
def progress(self, p):
if self.first:
logging.debug(f" {pprint.pformat(p)}")
logging.debug(f"Status: {pprint.pformat(p['status'])}, {p['_default_template']}, {type(p).__name__}")
logging.debug(f"{self.timer.remainingTime()}")
# print(self.timer.remainingTime())
self.first = False
...
...
def downloadFile(self, url):
ydlOpts = {
'progress_hooks': [self.progress]
}
self.timer = QTimer()
self.timer.setInterval(3500)
self.timer.setSingleShot(True)
self.timer.timeout.connect(self.stopDL)
self.timer.start()
self.ydl = YoutubeDL(ydlOpts)
self.ydl.download(url)
def stopDL(self):
logging.debug("stopping")
self.ydl.close()
No ... ale v logu je vidět jak QTimeru ubývá čas, a ... nic
18 19:11:08 [DEBUG] ytHelper: 84 progress: Status: 'downloading', 5.1% of 78.59MiB at 4.50MiB/s ETA 00:16, dict
18 19:11:08 [DEBUG] ytHelper: 85 progress: 1115
18 19:11:09 [DEBUG] ytHelper: 84 progress: Status: 'downloading', 10.2% of 78.59MiB at 4.69MiB/s ETA 00:15, dict
18 19:11:09 [DEBUG] ytHelper: 85 progress: 295
18 19:11:10 [DEBUG] ytHelper: 84 progress: Status: 'downloading', 12.3% of 78.59MiB at 4.73MiB/s ETA 00:14, dict
18 19:11:10 [DEBUG] ytHelper: 85 progress: 0
18 19:11:10 [DEBUG] ytHelper: 84 progress: Status: 'downloading', 12.3% of 78.59MiB at 350.34KiB/s ETA 03:22, dict
18 19:11:10 [DEBUG] ytHelper: 85 progress: 0
A samozřejmě, stahování se nepřeruší.
Nemůžu nijak zjistit, proč QTimer nevolá ukončovací funkci (jak se mi díky logu zdá)
Nemá s tím někdo z vás zkušenosti ? Mně napadá jen to, že QTimer není potomkem QWidgetu, ale nedělá mi to žádné problémové hlášky ( Qt Creator ), raději se zeptám.. jo a je to Qt5..
Děkuji
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.