Question

Je suis en train de faire un programme qui affiche des informations en ncurses, puis ouvre vim (à l'aide de system) pour permettre à l'utilisateur de modifier un fichier.Après vim est sorti, cependant, le ncurses l'écran ne pas redessiner. refresh et wrefresh ne rien faire, de sorte que les spoliant de mon beau menu.

Je me suis donc renvoyé à la ligne de commande.Les éléments de menu redessiner lorsque je me déplace à eux.Se déplacer un peu les résultats dans quelque chose qui ressemble à ceci:

Tragedy

Comme vous pouvez le voir, je ne suis plus dans ma jolie ncurses environnement.

J'ai pu abattre ncurses complètement et mettre les choses en place à nouveau, mais certains trucs (comme la position du menu) n'est pas conservé.

Comment puis-je faire cela correctement?Est-il un meilleur moyen pour appeler un programme externe et de retour ici avec grâce?

Était-ce utile?

La solution

Je n'ai jamais eu à redémarrer malédictions entièrement.

que faire si vous faites quelque chose comme

def_prog_mode() alors endwin()

exécution de l'appel système

et refresh() doit restaurer

Autres conseils

Séparer votre programme d'état de les malédictions de l'état.

Le seul moyen propre que je connaisse est d'arrêter et de redémarrer les malédictions entièrement.Si votre programme a une propre idée de son état interne (comme il se doit), alors il devrait être facile de revenir à la même position.

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top