ncurses – mit felejtek el

Kezdőlap Fórumok Programozás ncurses – mit felejtek el

5 bejegyzés megtekintése - 1-5 / 5
  • Szerző
    Bejegyzés
  • #2063548
    pointux
    Felhasználó
      Code:
      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 ();

      #2063549
      tovis
      Felhasználó

        Kö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.

        #2063550
        pointux
        Felhasználó

          „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.

          #2063551
          tovis
          Felhasználó

            Tö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!

            #1883578
            csaba
            Felhasználó

              Nekivá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
              #include

              int     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.

            5 bejegyzés megtekintése - 1-5 / 5
            • Be kell jelentkezni a hozzászóláshoz.