abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:11 | Nová verze

    Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | Nová verze

    Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).

    Ladislav Hagara | Komentářů: 5
    včera 15:11 | Nová verze

    Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Humor

    Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.

    Ladislav Hagara | Komentářů: 4
    včera 11:33 | Zajímavý článek Ladislav Hagara | Komentářů: 0
    16.9. 21:44 | Nová verze

    Byl vydán Mozilla Firefox 143.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově se Firefox při ukončování anonymního režimu zeptá, zda chcete smazat stažené soubory. Dialog pro povolení přístupu ke kameře zobrazuje náhled. Obzvláště užitečné při přepínání mezi více kamerami. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 143 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    16.9. 17:22 | Nová verze

    Byla vydána betaverze Fedora Linuxu 43 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 21. října.

    Ladislav Hagara | Komentářů: 0
    16.9. 12:22 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.9. 00:11 | Nová verze

    Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (47%)
     (53%)
     (0%)
     (7%)
     (13%)
     (7%)
     (20%)
     (7%)
     (13%)
    Celkem 15 hlasů
     Komentářů: 1, poslední včera 13:49
    Rozcestník

    Dotaz: kdialog + progressbar + kopírování souboru

    FrostyX avatar 23.2.2011 17:11 FrostyX | skóre: 27 | blog: Frostyho_blog | Olomouc
    kdialog + progressbar + kopírování souboru
    Přečteno: 277×

    Ahoj, potřeboval bych zkopírovat (10GB) soubor a průběh kopírováni zobrazit pomocí progressbaru v aplikaci kdialog. Jenže vůbec nevím jak to kopírováni s kdialogem provázat. Po třech hodinách hledání jsem našel jen jak pracovat s tím progressbarem a to je asi takto:

    dbusRef=`kdialog --progressbar "Initializing" 4`
    qdbus $dbusRef Set "" value 1
    qdbus $dbusRef setLabelText "Thinking really hard"
    sleep 2
    qdbus $dbusRef Set "" value 2
    sleep 2
    qdbus $dbusRef setLabelText "Thinking some more"
    qdbus $dbusRef Set "" value 3
    sleep 2
    qdbus $dbusRef Set "" value 4
    sleep 2
    qdbus $dbusRef close

    Věděl by někdo jak to přepsat prosím ?
    FrostyX.cz | 1984 was not supposed to be an instruction manual.

    Odpovědi

    25.2.2011 00:59 camel1cz | skóre: 25
    Rozbalit Rozbalit vše Re: kdialog + progressbar + kopírování souboru
    Ahoj, odpovídal sem ti v jiném threadu o tom samém, ale asi tě mé řešení nezajímalo :-)

    Tady je skript, co dělá to co chceš s navrhovaným toolem - ten kdialog neznám (sem gnomista :-)
    #!/bin/bash
    PIPE=.progress
    
    if [ ! -p $PIPE ]
    then
        mkfifo $PIPE
    fi
    
    rsync -av --progress .sdata /tmp/ > $PIPE &
    RSYNCPID=$!
    
    cat $PIPE |
       awk '{RS="\r"; sub("%", ""); print $2; fflush();}' |
       zenity --progress --title "Kopírování" \
           --text="Čekejte..." --percentage=0
    
    if [ "$?" -ne 0 ]
    then
        kill $RSYNCPID
    fi
    
    Uprav si proměnnou PIPE a parametry zenity (texty)...
    FrostyX avatar 25.2.2011 03:35 FrostyX | skóre: 27 | blog: Frostyho_blog | Olomouc
    Rozbalit Rozbalit vše Re: kdialog + progressbar + kopírování souboru

    Ahoj, tvá odpověď mě samozřejmě zajímala a děkuji za ni, jenže minule jsi poslal jednořádkový script "zenity --progress". Hned jsem si šel hledat info o zenity, zkoušel s tím pracovat, narazil na kdialog a zkoušel i ten. Problém byl ten, že jsem zenity/kdialog nedokázal propojit s kopírováním. Strávil jsem nad tím poměrně dlouhou dobu a řekl jsem si, že bych dotaz mohl položit trochu jinak / lépe. Právě sedím a píšu prográmek v Qt, který by to udělal a najednou odpověď.

    Děkuji moc, přesně tohle jsem od začátku chtěl. Ještě to zkusím upravit pro použití s kdialogem, ale pokud to nevyjde tak nevadí.

    Měl bych k tomu skriptíku ale jednu otázku. Aby mi to kopírovalo fileA a vytvořilo fileB upravil jsem řádek rsync -av --progress fileA fileB > $PIPE &. Jakou roli v tom má hodnota proměnné PIPE nastavená na začátku ? Nechal jsem totiž .progress a funguje to.

    FrostyX.cz | 1984 was not supposed to be an instruction manual.
    25.2.2011 14:03 camel1cz | skóre: 25
    Rozbalit Rozbalit vše Re: kdialog + progressbar + kopírování souboru
    OK, v poho...

    Ta proměnná PIPE obsahuje cestu k zvláštnímu typu souboru - pojmenované rouře (či jak se to jmenuje česky - v originale named pipe). Je to objekt, do kterého může jedna aplikace psát a druhá z něj číst. Je to stejné jako když napíšeš např. "ls -l | grep xxx", ale nechceš nebo nemůžeš to napsat do jednoho řádku. Výstup si prostě uložíš a později zpracuješ...

    Logika toho skriptu je taková, že rsync vypisuje průběh kopírování na standardní výstup, ten ukládám do PIPE... následně pustím awk skript, kterej ten výstup zpracovává a vypisuje pouze hotová procenta každá hodnota na novém řádku (bez symbolu %)

    To, že to nejde může být: 1) kdialog chce jiný vstup než zenity. zenity čte ze vstupu čísla a interpretuje je jako procenta.

    2) ta named pipe vytvoří ve špatném adresáři a pak se nenajde... zkusil bych tam dát nějakou absolutní cestu - nabízí se /tmp/.progress - to by ale mělo vypisovat nějakou chybu

    3) máš jinou verzi někreré aplikace (rsync?) a nefunguje to parsování... píše to nějakou chybu? Pokud ne, tak doporučuji odladit to postupně...

    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.