Pergunta

Eu estou fazendo um programa que exibe algumas informações em ncurses e, em seguida, abre o vim (usando system) para permitir que o usuário edite um arquivo.Depois vim é encerrado, porém, o ncurses tela não redesenhar. refresh e wrefresh não fazer nada, o que resulta na completa destruindo minha bela menu.

Então, fui enviado de volta para a linha de comando.Os itens de menu redesenhar quando eu passar para eles.Movendo-se um pouco resulta em algo que se parece com isso:

Tragedy

Como você pode ver, eu não sou na minha linda ncurses ambiente.

Eu poderia derrubar ncurses completamente e definir as coisas novamente, mas, em seguida, algumas coisas (como a posição do menu) não é mantida.

Como posso fazer isso corretamente?Não há melhor maneira de chamar algum programa externo e retorno aqui graciosamente?

Foi útil?

Solução

Eu nunca tive que reiniciar maldições inteiramente.

que se você faz algo que gosta

def_prog_mode() em seguida, endwin()

executar a chamada de sistema

e refresh() deve restaurá-lo

Outras dicas

Separe seu programa de estado da maldições estado.

A única maneira limpa eu sei que é para parar e reiniciar maldições inteiramente.Se o seu programa tiver um limpo noção de seu estado interno (como deveria), então ele deve ser fácil voltar para a mesma posição.

Boa sorte!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top