On Mon, Feb 18, 2019 at 1:52 PM Gabriele Battaglia <iz4...@libero.it> wrote: > > [...] > > Quello che ti serve di curses è: > > https://docs.python.org/3.7/howto/curses.html#user-input > > In particolare le funzioni getkey e getstr. > > > > Ecco un piccolo esempio: > > https://pastebin.com/b0B0LbfC > > > > getkey la puoi implementare usando pyunput, ma la seconda è molto più > > complessa. > > > > Fai attenzione che curses **altera** come il terminale funziona > > normalmente, quindi potresti vedere cose strane. > > Francamente, sul mio sistema Linux non mi sembra che curses si > > comporti come dichiarato nella documentazione... > Infatti, molto strane. > Dopo l'istruzione initsch() con cui si inizializza l'area di schermo del > terminale, tutta la tecnologia di supporto (lettore di schermo della > console) impazzisce.
Come temevo. Avevo dimenticato che utilizzi il supporto per la lettura. > Inutile rivolgersi a librerie così complesse che fanno così tante cose. > A me serve qualcosa di piccolo e specifico, solo per la tastiera. > Purtroppo quello che vuoi fare **è** complesso. Normalmente (quello che i sistemi UNIX chiamano modalità canonica), il terminale quando legge l'input fa molte cose. * quando premi il tasto Backspace, cancella l'ultimo carattere immesso * quando premi il tasto freccia sinistra e destra, ti posiziona all'interno del testo che stai immettendo * ignora i caratteri speciali Per questo motivo attende che l'utente premi il tasto Enter per indicare che ha finito. Per leggere un carattere alla volta devi rinunciare a tutto questo, e reimplementarlo. Ci sono un paio di soluzione che mi vengono in mente, ma sono tutte fragili. Hai davvero bisogno di leggere un carattere alla volta? Devi davvero gestire i carattere speciali come le freccie? Prova a vedere se https://docs.python.org/3/library/cmd.html ti può servire. Ciao Manlio _______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python