2009-11-15 1 views
2

J'écris une application en utilisant ncurses qui affiche l'état des tests qui s'exécutent sur plusieurs machines. Il affiche plusieurs barres de progression en bas de l'écran et un journal d'échec au-dessus d'elles. Cependant, le journal peut facilement être plus long que le reste du terminal. Je souhaite que l'excès de journal se stabilise de telle sorte que si l'utilisateur fait défiler son terminal vers le haut, il verra le reste du journal. C'est ce qui se passe lorsque vous faites défiler un fichier en utilisant less; il remplace la vue actuelle par la page suivante, mais le texte que vous avez passé finit dans le défilement du terminal.Comment puis-je ajouter au scrollback du terminal en utilisant ncurses?

Comment puis-je obtenir ncurses pour faire cela?

Répondre

1

Il s'avère que c'est facile. Je viens de mettre une fenêtre en haut de l'écran, l'a fait défiler (scrollok), et addstr 'd texte jusqu'à ce qu'il défile. Le texte a défilé directement dans le scrollback sans problème.

+0

Ne semble pas fonctionner, au moins avec ncurses 5.7 et Terminal.app ou xterm de Mac OS X 10.6. :( – Miles

+1

Vous pouvez jeter un coup d'oeil à mon code ici: https://github.com/Peeja/multi_progress_bar. Avec des excuses pour les URL longues, les lignes pertinentes sont https://github.com/Peeja/multi_progress_bar/blob/master /lib/multi_progress_bar.rb#L21 et https://github.com/Peeja/multi_progress_bar/blob/master/lib/multi_progress_bar.rb#L50 – Peeja

+0

Merci pour la publication, mais cela me donne le même comportement (l'interface ncurses prend immédiatement sur toute la zone visible du terminal et quand le programme se termine, le contenu original est restauré.) Notez que 'less' se comporte de la même façon sur mon ordinateur ... – Miles

Questions connexes