C - allant de ncurses interface utilisateur du programme externe et à l'arrière
-
16-09-2020 - |
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:
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?
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!