Kezdőlap › Fórumok › Programozás › ncurses – mit felejtek el
- This topic has 4 hozzászólás, 3 résztvevő, and was last updated 19 years, 4 months telt el by
tovis.
-
SzerzőBejegyzés
-
2006-06-16-17:15 #2063548Code:initscr ();
refresh ();w_ou = newwin ( LINES, COLS, 0, 0 ); // de ez egy „háttér” ablak a „háttér” alapon (tehát így nem látszik)
box ( w_ou, 0, 0 ); // próbáld ezt 🙂wprintw (w_ou, „Hello World!” );
wrefresh ( w_ou );
getch ();…
2006-06-16-20:31 #2063549Kössz! – farkasvakság és apró csúsztatások a dokuban.
A newwin után kell egy refresh() akkor szépen mûködik.
Viszont ahogy haéladok elõre több a baj. A doksikban van ahol azt írják, hogy a backspace mûködik – hát nem, tehát a waddch(wOu,”backspace”) egy ilyet ír ki: ^? Mondjuk ez a kissebbik gond – én is megtudom csinálni amit kell – plussz egy óra kódolgatás;o(
A kurzor összevissza lötyög, még nem találok kapaszkodót – mit is kellen ezzel csinálni?
Lehet hogy field -ként kellene dolgoznom ha szerkesztõi ablakot akarok?
Ha interaktívan akarok mûködni, akkor a cbreak() -et kell minimum beállítani ( a raw() talán tûlzás) de hogy a novait az window specifkus azt nehezen értem – sehol nem írják.2006-06-17-06:47 #2063550„A newwin után kell egy refresh() akkor szépen mûködik.”
Nem a newin után, hanem az inicializálás után… (elméletileg persze ott is mûködhet)„A kurzor összevissza lötyög, még nem találok kapaszkodót – mit is kellen ezzel csinálni?”
Oda megy, ahol éppen ír (bár ez lehet, hogy olyan gyors, hogy nem látszik és csak a parkoló pontok látszanak)… amennyiben nem bufferelsz, akkor leginkább ezt fogja tenni, mivel mindent azonnal ki kéne tenni, nem pedig csak azt, ami éppen látszik. A refresh-t is tedd az init után, frissíteni, meg csak azt amit feltétlen kell…Tölsél le valahonnan egy példaprogramot, aztán az alapján próbáld.
2006-06-20-20:47 #2063551Több példát is letöltöttem de a curs_set – amit végül is használtam – egyik sem használja, illetve ilyan csacsakaságokat csak úgylátszik csak én írok;o(
Egyébként csak egy egyszerû felületet akarok, ami egy TCP kliens/TCP szerver és egy UDP socketet vezérel – egyszerû. Kell egy beviteli sor (itt lehet parancsot bevinni illetve egyszerû csomagocskákat beírni), kell egy szép nagy kimeneti sor (ide kerülnek a beérkezõ csomagok és a adataik – idõ, forrás cím), illetve a program futása közvne keletkezõ hiba üzenetek, és kell egy státusz sor ahol bizonyos állapotokat lehet kijelezni. Nagyjából ez a váz, egy nagyon hasonlót már csináltam windows -ba és rendkívûl hasznos segédeszköznek bizonyult, arról nem beszélve hogy a segítségével lõttem be a saját kis TCP/UDP socket wrapperemet.
Kössz a tippeket!2009-12-04-19:58 #1883578Nekivágtam egy egyszerû kis programocskának amihez az ncurses lenne a nyerõ UI alap. Már az elsõ, primitív példaproginál leakadtam – kreálni egy ablakot, irní bele valami bonyolultat – Hello World!. Szerintem, azok alapján amit eddig találtam ehhez elég kell hogy legyen ennyi:
#include
#includeint main()
{
WINDOW *w_ou;initscr();
if ( (w_ou = newwin(LINES,COLS,0,0)) == NULL ) /* window-t kreál, a teljes méretre */
fprintf(stderr,”ERROR: newwinn”);if ( wprintw(w_ou,”Hello World!”) < 0 ) /* a nagy üzenet */
fprintf(stderr,”ERROR: wprintwn”);wrefresh(w_ou); /* „frissítsük” az ablakot – semmi nem történik */
refresh(); /* frissítsük az egészet – semmi változás? */getch(); /* gyönyörködhetnék… */
endwin();
return ( 0 );
}Az eddigiek alapján ennek gond nélkül ki kellene írni, hiogy „Hello Word” de nem történik semmi;o(
Valami ötlet, mi az ördög hiányozhat?PS: Mellékesen az ncurses dokumentációja ritka kusza – nincs egy tagolt API leírás – mint pl. a libc.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.

legutóbbi hsz