Wie kann ich einen Fluch Fenster in Python löschen und Hintergrund-Fenster wiederherstellen?

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

  •  24-09-2019
  •  | 
  •  

Frage

Hell-o Jungs, ich bin auf Python Flüche und ich habe meine erste Fenster mit initscr () und ich erstellen mehrere neue Fenster, die es zu überlappen, ich möchte wissen, ob ich diese Fenster löschen und wiederherstellen das Standardbild ohne es zu füllen zu haben. Gibt es einen Weg? Ich kann auch fragen, ob mir jemand den Unterschied zwischen einem Fenster kann sagen, Subwindow, Polster und Unterkissen.

Ich habe diesen 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.
War es hilfreich?

Lösung

Dies soll beispiel arbeiten:

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)

Das erfüllt das Terminal mit 'S'; jeder keystoke, füllt es das Fenster mit ‚w‘; beim nächsten Tastendruck entfernt er das Fenster und zeigt die stdscr wieder, es ist so wieder alle-ES '; beim nächsten Tastendruck, geht das Skript beendet und das Terminal wieder normal. Ist das nicht für Sie arbeiten? Oder tun eigentlich etwas anderes Sie wollen ...?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top