hi,
ich wollte mir mit Curses eine art Terminal bauen. Leider stoße ich gerade auf eine Barriere bezüglich des Auslesen des Streams. Ich möchte sowohl Befehle entgegen nehmen, was ich mit
Term.getstr()
realiseren will. Ebenso möchte ich aber die Funktionstasten (F-1...12) einbinden und mittels
Term.getch()
abfragen. Leider habe ich noch nicht heraus gefunden wie man es parallel machen kann. Ein serielles Abfragen führt nur zu Problemen bez. der Korrektur der Terminaleingabe (--> löschen, etc).
Ich dachte schon an multithreading, aber das habe ich entweder falsch angegangen, oder es ist nicht das richtige.
Mein Versuch:
def get_chr(win):
input=win.getch()
if input in [curses.KEY_UP,curses.KEY_DOWN,curses.KEY_F1,curses.KEY_F2,curses.KEY_F3,curses.KEY_F4,curses.KEY_F5,curses.KEY_F6,curses.KEY_F7,curses.KEY_F8,curses.KEY_F9,curses.KEY_F10,curses.KEY_F11,curses.KEY_F12]:
menu_command(win,input)
else:
pass
def get_str(win):
input=str(win.getstr())
if input == "exit":
trigger = 1
pass
def get_input(win):
while trigger == 0:
try:
thread.start_new_thread(get_chr(win))
thread.start_new_thread(get_str(win))
except:
win.addstr("Fehler!")
while 1:
pass
Es gibt bestimmt eine Lösung für dieses Problem, aber irgendwie sehe ich es nicht 🙁