Comment puis-je supprimer une fenêtre de malédiction en python et restaurer la fenêtre d'arrière-plan?

StackOverflow https://stackoverflow.com/questions/2575409

  •  24-09-2019
  •  | 
  •  

Question

gars Hell-o, je travaille sur des malédictions de python et j'ai ma fenêtre initiale avec initscr () et je créer plusieurs nouvelles fenêtres se chevauchent, je veux savoir si je peux supprimer ces fenêtres et restaurer l'écran standard sans avoir à remplir. Est-il possible? Je peux aussi demander si quelqu'un peut me dire la différence entre une fenêtre, subwindow, pad et pad sous.

J'ai ce code:

stdscr = curses.initscr()
####Then I fill it with random letters
stdscr.refresh()
newwin=curses.newwin(10,20,5,5)
newwin.touchwin()
newwin.refresh()

####I want to delete newwin here so that if I write stdscr.refresh() newwin won't appear

stdscr.touchwin()
stdscr.refresh()

####And here it should appear as if no window was created.
Était-ce utile?

La solution

, par exemple, devrait fonctionner:

import curses

def fillwin(w, c):
    y, x = w.getmaxyx()
    s = c * (x - 1)
    for l in range(y):
        w.addstr(l, 0, s)

def main(stdscr):
    fillwin(stdscr, 'S')
    stdscr.refresh()
    stdscr.getch()

    newwin=curses.newwin(10,20,5,5)
    fillwin(newwin, 'w')
    newwin.touchwin()
    newwin.refresh()
    newwin.getch()
    del newwin

    stdscr.touchwin()
    stdscr.refresh()
    stdscr.getch()

curses.wrapper(main)

Cela remplit le terminal avec 'S'; à tout keystoke, il remplit la fenêtre avec « w »; à la prochaine séquence de touches, il supprime la fenêtre et montrer stdscr à nouveau, il est donc à nouveau tout'S '; à la prochaine séquence de touches, le script se termine et le terminal retourne à la normale. Est-ce pas travailler pour vous? Ou est-ce que vous voulez vraiment quelque chose de différent ...?

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