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í
×
    dnes 15:00 | Nová verze

    Po po téměř roce vývoje od vydání verze 5.38 byla vydána nová stabilní verze 5.40 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 75 vývojářů. Změněno bylo přibližně 160 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.

    Ladislav Hagara | Komentářů: 2
    dnes 12:00 | Zajímavý článek

    Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.

    Fluttershy, yay! | Komentářů: 1
    dnes 08:44 | Zajímavý software

    Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).

    Fluttershy, yay! | Komentářů: 2
    dnes 02:22 | Nová verze

    Po dvou měsících vývoje byla vydána nová verze 0.13.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 73 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    8.6. 17:55 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.

    Ladislav Hagara | Komentářů: 9
    7.6. 14:55 | IT novinky

    Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.

    Ladislav Hagara | Komentářů: 23
    7.6. 11:44 | Zajímavý software

    NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 1
    7.6. 10:55 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.

    Ladislav Hagara | Komentářů: 0
    6.6. 20:55 | IT novinky

    IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.

    Ladislav Hagara | Komentářů: 0
    6.6. 10:44 | Zajímavý článek

    Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.

    Ladislav Hagara | Komentářů: 42
    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: 580×
    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.