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 13:33 | Zajímavý článek

    Byly publikovány novinky z vývoje GIMPu. Pracuje se na novém formátu souborů. Stávající binární XCF bude nahrazen "zazipovaným XML". XCF zůstane plně podporován pouze pro načítání starých souborů.

    Ladislav Hagara | Komentářů: 1
    dnes 12:33 | Zajímavý projekt

    Workshop o umělé inteligenci v Dartmouthu proběhl před 70 lety, od 18. června do 17. srpna 1956. Dvouměsíční soustředění 6–11 informatiků, iniciované Johnem McCarthym, položilo základy oboru umělé inteligence.

    |🇵🇸 | Komentářů: 1
    dnes 03:00 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 7.1 oznámil Linus Torvalds vydání Linuxu 7.2. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.

    Ladislav Hagara | Komentářů: 1
    včera 18:55 | Komunita

    Debian dnes slaví 33 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.

    Ladislav Hagara | Komentářů: 1
    včera 04:22 | Komunita

    Probíhá hlasování o používání LLM při vývoji Debianu. Vývojáři Debianu mají na výběr 9 možností (návrhy A až H a žádný z nich).

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

    Omarchy je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové major verzi 4.0.0 - The Quattro Release. Videopředstavení na YouTube. Celý desktop shell byl přepsán do Quickshellu. Přidána byla podpora pluginů.

    Ladislav Hagara | Komentářů: 1
    15.8. 13:33 | IT novinky

    Francouzská Ústavní rada zamítla zákaz používání sociálních sítí dětem mladším 15 let. Francouzská obdoba ústavního soudu uvedla, že opatření představuje nepřiměřený zásah do svobody projevu. Francouzský parlament zákaz schválil na konci července, začít platit měl od září. Šlo o první zákaz sociálních sítí pro děti v Evropě. Členové Ústavní rady se domnívají, že ustanovení „představuje zásah, který není přiměřený, nezbytný ani

    … více »
    Ladislav Hagara | Komentářů: 1
    14.8. 16:33 | Zajímavý projekt

    Open-source trackball Ploopy Adept má novou verzi nazvanou A+. Stále jde o symetrický desktopový trackball s šasi z 3D tiskárny a firmwarem QMK. Novinkami jsou dvojice tlačítek, jimiž půjde také otáčet, a volitelná opěrka ruky. Funkcionalita firmwaru je rozšířena o gesta, vrstvy a možnost konfigurace za běhu. Schémata a kód jsou jako obvykle na GitHubu. A+ půjde předobjednat za 99 CAD (bez dopravy a cla/DPH).

    |🇵🇸 | Komentářů: 3
    14.8. 14:33 | IT novinky

    Prusa Research představil nové modely svých 3D tiskáren: Prusa XL+, CORE One+ (Gen 2) a CORE One L+.

    Ladislav Hagara | Komentářů: 2
    14.8. 13:33 | Nová verze

    Crown je multiplatformní open source herní engine. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT a GPLv3+. Byla vydána nová verze 0.64. Vyzkoušet lze online demo.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2407 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník


    Dotaz: Curses, podivne chovani

    31.8.2011 13:04 xdeber02
    Curses, podivne chovani
    Přečteno: 306×
    Zdravim, mam tento kratky skript v pythonu s pouzitim curses:
    import curses
    import time
    
    screen = curses.initscr()
    
    a = [1,2,3]
    
    def f(a):
        screen.clear()
        screen.refresh()
        for i in a:
            screen.addstr(str(i)+"\n")
    
    f(a)
    time.sleep(3)
    a.append(4)
    a.remove(1)
    f(a)
    
    screen.getch()
    curses.endwin()
    
    Ocekaval bych, ze skript se po spusteni bude chovat tak, ze vypise pod sebe 1,2,3 pak se 3 vteriny nic dit nebude a pak se 1,2,3 prekresli na 2,3,4. Misto toho se po spusteni 3 vteriny nic nedeje a pak se vypise 2,3,4. Nevite prosim jak docilit ocekavaneho chovani?

    Odpovědi

    31.8.2011 14:09 chrono
    Rozbalit Rozbalit vše Re: Curses, podivne chovani
    Ten program najskôr prekreslí obrazovku a až potom na ňu niečo vypíše a objaví sa to až pri nasledujúcom prekresľovaní (takže to screen.refresh() musí nasledovať až po tom, ako sú zobrazené všetky údaje).
    31.8.2011 14:11 xdeber02
    Rozbalit Rozbalit vše Re: Curses, podivne chovani
    Nejak presne nevim, jak to myslite, muzete uvest zmeny primo do kodu prosim?
    31.8.2011 14:23 chrono
    Rozbalit Rozbalit vše Re: Curses, podivne chovani
    def f(a):
        screen.clear()
        for i in a:
            screen.addstr(str(i)+"\n")
        screen.refresh()
    
    31.8.2011 14:34 xdeber02
    Rozbalit Rozbalit vše Re: Curses, podivne chovani
    Aha, to me mohlo napadnout, dekuji moc!

    Jeste bych se chtel zeptat, zda jde nejakym zpusobem zajistit, aby po ukonceni programu zustal v konzoli posledni vypis, tedy v tomto pripade 2,3,4?
    dan.h avatar 31.8.2011 15:59 dan.h | skóre: 8 | blog: K8_blog | okr. Písek, město Čimelice, obec Nerestce
    Rozbalit Rozbalit vše Re: Curses, podivne chovani

    Ve framebuffer konzoli (N)curses aplikace zanechají výpis, ale v Xtermu a jiných emulátorech terminálu se kompletní výpis (N)curses aplikace smaže. Výpis by asi šel zanechat pomocí printf(), akorát že Python neznám, tak nevím, jestli tam printf()je.

    31.8.2011 16:04 xdeber02
    Rozbalit Rozbalit vše Re: Curses, podivne chovani
    Myslite jako misto te metody addstr() pouzit printf()?
    dan.h avatar 31.8.2011 16:09 dan.h | skóre: 8 | blog: K8_blog | okr. Písek, město Čimelice, obec Nerestce
    Rozbalit Rozbalit vše Re: Curses, podivne chovani

    Spíše dát printf() úplně na konec. Nechat v kódu addstr(), ale na konec ještě přidat printf()

    31.8.2011 16:19 xdeber02
    Rozbalit Rozbalit vše Re: Curses, podivne chovani
    Jakoze uplne na konci programu vypisu data nejenom pomoci addstr(), ale i pomoci printf()?
    dan.h avatar 31.8.2011 16:30 dan.h | skóre: 8 | blog: K8_blog | okr. Písek, město Čimelice, obec Nerestce
    Rozbalit Rozbalit vše Re: Curses, podivne chovani

    Nějak takle:

    import curses
    import time
    
    screen = curses.initscr()
    
    a = [1,2,3]
    
    def f(a):
        screen.clear()
        for i in a:
            screen.addstr(str(i)+"\n")
        screen.refresh()
    
    f(a)
    time.sleep(3)
    a.append(4)
    a.remove(1)
    f(a)
    
    screen.getch()
    curses.endwin()
    
    print "%s" % a
    
    Co to poslední udělá nevím, protože nevím, jak moc je v Pythonu možno do outputu nacpat všelijaký bordel jako je to možné v PHP. Předpokládám, že 'a' zůstane v paměti i po uzavření curses.

    dan.h avatar 31.8.2011 16:36 dan.h | skóre: 8 | blog: K8_blog | okr. Písek, město Čimelice, obec Nerestce
    Rozbalit Rozbalit vše Re: Curses, podivne chovani

    teď jsem to otestoval a funguje to, po ukončení programu mi zůstalo:

    [root@pc-sempron ~]# vim test.py 
    [root@pc-sempron ~]# python test.py 
    [2, 3, 4]
    [root@pc-sempron ~]#
    

    31.8.2011 16:38 xdeber02
    Rozbalit Rozbalit vše Re: Curses, podivne chovani
    Ano, tak mohu potvrdit, ze toto funguje, ale presto by me zajimalo, zda neexistuje nejake cistsi reseni, jednoduseknihovne curses nejak rict, aby po skonceni za sebou ten disaply nezametla. Takto podle me funguje vetsina aplikaci pouzivajici curses, napriklad airodump-ng.
    dan.h avatar 31.8.2011 16:45 dan.h | skóre: 8 | blog: K8_blog | okr. Písek, město Čimelice, obec Nerestce
    Rozbalit Rozbalit vše Re: Curses, podivne chovani

    když jsem smazal řádek curses.endwin(), tak to výpis nechalo, ale Xterm mi odmítal odřádkovat a neukazoval co píšu. :-D

    31.8.2011 16:47 xdeber02
    Rozbalit Rozbalit vše Re: Curses, podivne chovani
    Ano, toho jsem si take vsiml, ale to neni zrovna chovani, ktere by mi vyhovovalo:-D

    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.