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 14:44 | IT novinky

    Na Seznam nepovolených internetových her (Wikipedie) se k 13. 7. 2026 dostala predikční platforma Polymarket.

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

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 167 (pdf) a Hello World 30 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 00:44 | Nová verze

    Byla vydána nová verze 3.22.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | Komunita

    FreeBSD odstranilo poslední GPL kód ze základního systému. Konkrétně dpv, libdpv, libfigpar a dialog. Instalátor před čtyřmi lety přešel z dialogu na bsddialog.

    Ladislav Hagara | Komentářů: 2
    včera 15:22 | IT novinky

    Sociální síti 𝕏 (dříve Twitter) má dnes 20 let. Pro veřejnost byla zpřístupněna 15. července 2006.

    Ladislav Hagara | Komentářů: 2
    včera 14:22 | Zajímavý software

    Insula Faktury je open source generátor faktur, který běží přímo ve webovém prohlížeči. Žádná registrace, žádné sledování, žádné omezení. Zdrojové kódy jsou k dispozici na Codebergu.

    Ladislav Hagara | Komentářů: 17
    včera 13:22 | Komunita

    První Mobile Linux Hackday v Plzni, tj. komunitní setkání věnované Linuxu na mobilních zařízeních, proběhne 24. července od 10:00. Akce je otevřená všem zájemcům – od zvědavců po zkušené vývojáře. Dopoledne proběhnou přednášky Davida Heidelberga a Petra Hodiny o aktuálním stavu mobilního Linuxu: proč vůbec chtít tučňáka v kapse, jaké telefony jsou dnes dobře podporované a co taková podpora obnáší. Po obědě se zaměříme na konkrétní

    … více »
    Ladislav Hagara | Komentářů: 0
    14.7. 19:33 | Nová verze

    3D software Blender byl vydán ve verzi 5.2 s prodlouženou podporou. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    14.7. 16:55 | Zajímavý software

    SketchForge 3D (GitHub, reddit) je open source 3D editor / CAD běžící ve webovém prohlížeči bez nutnosti účtu nebo cloudového úložiště. Inspirovaný byl Tinkercadem. Doporučena je lokální instalace.

    Ladislav Hagara | Komentářů: 0
    14.7. 12:44 | Nová verze

    Byla vydána nová verze 11.9 webového prohlížeče Midori (Wikipedie, GitHub). S novým centrem ovládání, pokročilejším blokováním reklam, optimalizací výkonu…

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 2144 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Curses, podivne chovani

    31.8.2011 13:04 xdeber02
    Curses, podivne chovani
    Přečteno: 224×
    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.