abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 4
    včera 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    7.5. 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 2
    7.5. 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    7.5. 13:44 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.

    Fluttershy, yay! | Komentářů: 0
    7.5. 13:11 | IT novinky

    Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.

    Ladislav Hagara | Komentářů: 2
    6.5. 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 5
    6.5. 21:11 | IT novinky

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 1
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (7%)
     (14%)
     (16%)
    Celkem 139 hlasů
     Komentářů: 10, poslední včera 17:35
    Rozcestník

    Dotaz: ještě jeden ydl gui program ... problém s QTimerem

    18.12.2023 20:07 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    ještě jeden ydl gui program ... problém s QTimerem
    Přečteno: 565×
    Zdravíčko... Protože jsem tady již dostal mnoho cenných rad, s dalším zákysem se obracím znovu sem..

    je třída Helper (taková nástavba nad yt-dlp), a v ní volám jednak žádost o info k videosouboru, a pak samotné stažení.

    Stahování infa i souboru je v pořádku, a chtěl jsem nasimulovat přerušení stahování. Má to dělat user, ale pro pokusy, jak se to bude chovat jsem použil QTimer takto:
    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

    Odpovědi

    18.12.2023 23:25 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: ještě jeden ydl gui program ... problém s QTimerem
    Aha, zkusil jsem tedy zastavovat yt-dlp "ručně" přes tlačítko, a nic .. volající okno je úplně zatuhlé až do skončení stahování .. takže stahování asi musím hodit do podprocesu ... no .. uvidíme .. Někdy dám vědět, jak jsem dopadl, protože teď jsem na tom s časem nedobře ...
    13.2. 20:50 Franta
    Rozbalit Rozbalit vše Re: ještě jeden ydl gui program ... problém s QTimerem
    Pro funkcnost QTimeru potrebujes, aby ti bezela nejaka smycka udalosti ve vlakne (QEventLoop/exec, QCoreApplication/exec, apod.), ve kterem si vytvoril timer. Dale pak muze byt download() funkce blokujici, tj vrati az bude dokonceno. To bys mozna mohl pouzit neco jako QEllapsedTimer a testovat uplynuly cas v callbacku stahovaci funkce a zkusit to zrusit tam odtud

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.