Wie finde ich die Terminalbreite & Höhe einer Ncurses-Anwendung?ncurses Terminalgröße
Antwort
void getmaxyx(WINDOW *win, int y, int x);
ich glaube ...
auch kann dies helfen ...
Außerdem: Vergessen Sie nicht, dass einige Betriebssysteme SIGWINCH haben, die Ihr Prozess empfängt, wenn die Größe des Terminals geändert wird ... – asveikau
'initscr()' wird den Bildschirm löschen. Gibt es eine Möglichkeit, Terminalgröße zu erhalten und den Bildschirm nicht zu löschen? – jiandingzhe
Nicht sicher, dass dies wahr ist, weil 'y' und' x' keine Zeiger sind und daher die Funktion nichts an sie kopiert. Und von 'mkssoftware.com':" 'getbegyx() und getmaxxyx() Makros speichern die aktuellen Anfangskoordinaten und die Größe des angegebenen Fensters." –
Was SCR_H
und SCR_W
mit?
ich verwende 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);
Das ist nicht sehr ncurses'ish. – einpoklum
ncurses Anwendungen normalerweise SIGWINCH
handhaben und die ioctl
mit TIOCGWINSZ
verwenden den System Begriff der Bildschirmgröße zu erhalten. Dies kann durch die Umgebungsvariablen LINES
und COLUMNS
übersteuert werden (siehe use_env
).
Da die ncurses globalen Variablen LINES
COLS
und werden als Nebenwirkung aktualisiert, wenn wgetch
kehrt KEY_RESIZE
(in Reaktion auf ein SIGWINCH
), um die Größe des stdscr
(das Standardbild den ganzen Terminal darstellt) erhalten wird.
Sie können natürlich getmaxx
, getmaxy
und getmaxyx
verwenden, um eine oder beide Grenzwerte für die X- und Y-Koordinaten eines Fensters zu erhalten. Nur der letzte ist Standard (und portabel).
Weiterführende Literatur:
die Variablen COLS, LINES auf die Bildschirmgrößen nach initscr initialisiert werden().
Quelle: NCURSES Programming HOWTO
Ich bin mir nicht sicher, ob sie allerdings auf Resize aktualisiert.
- 1. NCurses Refresh
- 2. Haskell ncurses
- 3. Non-blocking getch(), ncurses
- 4. Strichzeichnung in ncurses
- 5. C++ Wrapper für Ncurses?
- 6. Ncurses scrollbare Textleser
- 7. nicht Klemmengröße mit ncurses
- 8. Ncurses scrolling Linien
- 9. NCurses Speicherzuweisung valgrind Nachricht
- 10. C/C++ ncurses Einfrieren
- 11. Haskell `ncurses` Bibliothek
- 12. ncurses transparente Konsole Hintergrund
- 13. Ist Ncurses für Windows verfügbar?
- 14. Keep Ncurses Fenster auf Vordergrund
- 15. ncurses und weiß-auf-schwarz
- 16. Drucke lange Unicode in ncurses
- 17. NCurses und Perl, irgendwelche Führer?
- 18. mein ncurses noecho() funktioniert nicht
- 19. ncurses Anfänger - mit GNU C
- 20. Verwenden der Rücktaste mit Ncurses
- 21. ncurses und C- Display-Ausgabe von 'df' Befehl in Ncurses-Fenster
- 22. ncurses-ähnliche Bindungen in interpretierten Sprachen
- 23. Macports ncurses Fehler beim Versuch zu aktualisieren
- 24. Dynamisch Zählung aktualisiert ncurses in PHP
- 25. Debuggen von Ncurses mit Eclipse CDT
- 26. Cursor verlässt Fenster beim Tippen (ncurses)
- 27. Erhalten von 256 Farben aus Ruby-Ncurses
- 28. ncurses getmaxx geben nur eine halbe Klemmengröße
- 29. Linux-Terminal zeigt nichts mit Ncurses
- 30. Wie 32k Farbpaare in Ncurses aktivieren?
@DylanJ, keine Notwendigkeit, die Antwort in die Frage zu stellen, vor allem, wenn Sie die Antwort akzeptiert haben. – paxdiablo