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 09:33 | IT novinky

    Firefox 151 podporuje Web Serial API. Pro komunikaci s různými mikrokontroléry připojenými přes USB nebo sériové porty už není nutné spouštět Chrome nebo na Chromiu postavené webové prohlížeče.

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

    Byla vydána nová stabilní verze 8.0 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 148. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Bezpečnostní upozornění

    Ve FreeBSD byla nalezena a opravena zranitelnost FatGid aneb CVE-2026-45250. Jedná se o lokální eskalaci práv. Neprivilegovaný uživatel se může stát rootem.

    Ladislav Hagara | Komentářů: 0
    včera 14:33 | IT novinky

    Společnost Flipper Devices oznámila Flipper One. Zcela nový Flipper postavený od nuly. Jedná se o open-source linuxovou platformu založenou na čipu Rockchip RK3576. Hledají se dobrovolníci pro pomoc s dokončením vývoje (ovladače, testování, tvorba modulů).

    Ladislav Hagara | Komentářů: 2
    včera 14:00 | Nová verze

    Vývojáři Wine oznámili vydání verze 2.0 knihovny vkd3d pro překlad volání Direct3D na Vulkan. Přehled novinek na GitLabu.

    Ladislav Hagara | Komentářů: 0
    včera 11:33 | Nová verze

    Společnost Red Hat oznámila vydání Red Hat Enterprise Linuxu (RHEL) 10.2 a 9.8. Vedle nových vlastností a oprav chyb přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Vypíchnout lze CLI AI asistenta goose. Podrobnosti v poznámkách k vydání (10.2 a 9.8).

    Ladislav Hagara | Komentářů: 0
    včera 05:11 | Nová verze

    Organizace Apache Software Foundation (ASF) vydala verzi 30 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 05:00 | Nová verze

    Byla vydána nová verze 7.0 svobodného open source redakčního systému WordPress. Kódové jméno Armstrong bylo vybráno na počest amerického jazzového trumpetisty a zpěváka Louise Armstronga (What A Wonderful World).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Bezpečnostní upozornění

    V Drupalu byla nalezena a opravena kritická zranitelnost SA-CORE-2026-004 (CVE-2026-9082). Útočník může provádět libovolné SQL dotazy na webech používajících databázi PostgreSQL.

    Ladislav Hagara | Komentářů: 0
    20.5. 14:11 | Komunita

    Richard Hughes oznámil, že službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzoruje také společnost HP.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1678 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: 191×
    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.