Wie man ein Wort in ncurses Bildschirm eingeben?

Ich habe versucht, raw_input() Funktion zuerst zu verwenden, aber finde es in kompatibel mit ncurses.
Dann habe ich versucht window.getch() -Funktion, ich kann window.getch() und zeigen Zeichen auf dem Bildschirm, aber kann nicht erkennen, Eingabe. Wie kann ich ein Wort in ncurses und kann if Anweisung verwenden, um es zu bewerten?

Zum Beispiel möchte ich das in ncurses :

 import ncurses stdscr = curses.initscr() # ???_input = "cool" # this is the missing input method I want to know if ???_input == "cool": stdscr.addstr(1,1,"Super cool!") stdscr.refresh() stdscr.getch() curses.endwin() 

  • Linux: Pipe in Python (ncurses) Skript, Stdin und Termios
  • Curses-like Bibliothek für Cross-Plattform-Konsole App in Python
  • Python ncurses, CDK, urwid Unterschied
  • Python ncurses: Zeigt nicht den Bildschirm bis zum ersten Tastendruck an, obwohl Refresh zuerst ist
  • Bearbeiten von Text mit Python und Curses Textbox Widget?
  • Python flucht nicht Farben, während C ncurses funktioniert gut
  • (N) flucht Pad in Python nicht funktioniert
  • Wie man das Fluchfenster korrekt erfrischt?
  • One Solution collect form web for “Wie man ein Wort in ncurses Bildschirm eingeben?”

    Funktion raw_input( ) funktioniert nicht im getch() Methode getch() gibt eine Ganzzahl zurück. Es steht für den ASCII-Code der gedrückten Taste. Das wird nicht funktionieren, wenn du String von prompt scannen willst. Sie können die Funktion getstr :

    window.getstr([y, x])

    Lesen Sie einen String aus dem Benutzer, mit primitiver Zeilenbearbeitungskapazität.

    Benutzereingabe

    Es gibt auch eine Methode, um eine ganze Zeichenfolge getstr() , getstr()

     curses.echo() # Enable echoing of characters # Get a 15-character string, with the cursor on the top line s = stdscr.getstr(0,0, 15) 

    Und ich schrieb raw_input Funktion wie unten:

     def my_raw_input(stdscr, r, c, prompt_string): curses.echo() stdscr.addstr(r, c, prompt_string) stdscr.refresh() input = stdscr.getstr(r + 1, c, 20) return input # ^^^^ reading input at next line 

    Nennen Sie es als choice = my_raw_input(stdscr, 5, 5, "cool or hot?")

    Bearbeiten: Hier ist das Beispiel:

     if __name__ == "__main__": stdscr = curses.initscr() stdscr.clear() choice = my_raw_input(stdscr, 2, 3, "cool or hot?").lower() if choice == "cool": stdscr.addstr(5,3,"Super cool!") elif choice == "hot": stdscr.addstr(5, 3," HOT!") else: stdscr.addstr(5, 3," Invalid input") stdscr.refresh() stdscr.getch() curses.endwin() 

    Ausgabe:

    Bildbeschreibung hier eingeben

    Python ist die beste Programmiersprache der Welt.