Frage

Wie finde ich die terminale Breite und Höhe einer NCurses -Anwendung?

War es hilfreich?

Lösung

Andere Tipps

NCURSES -Anwendungen werden normalerweise behandelt SIGWINCH und benutze die ioctl mit TIOCGWINSZ Um den Begriff der Bildschirme des Systems zu erhalten. Dies kann durch die Umgebungsvariablen überschrieben werden LINES und COLUMNS (sehen use_env).

Angesichts dessen die globalen NCURSSE -Variablen LINES und COLS werden als Nebeneffekt aktualisiert, wenn wgetch kehrt zurück KEY_RESIZE (als Antwort auf a SIGWINCH) um die Größe von zu geben stdscr (Der Standardbildschirm, der das gesamte Terminal darstellt).

Sie können natürlich verwenden getmaxx, getmaxy und getmaxyx Um eine oder beide Grenzen für die X- und Yordinaten eines Fensters zu erhalten. Nur das letzte ist Standard (und tragbar).

Weitere Lesung:

Ich benutze diesen Code:

struct winsize size;
if (ioctl(0, TIOCGWINSZ, (char *) &size) < 0)
    printf("TIOCGWINSZ error");
printf("%d rows, %d columns\n", size.ws_row, size.ws_col);

Was ist mit der Verwendung SCR_H und SCR_W?

Die Variablen cols, Linien werden nach Initscr () auf die Bildschirmgrößen initialisiert.

Quelle: NCURSses Programmierung Howto

Ich bin mir nicht sicher, ob sie in der Größenänderung aktualisiert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top