On Sun, Feb 17, 2019 at 10:25 PM Gabriele Battaglia <iz4...@libero.it> wrote: > [...] > Ricordo che già tempo fa qualcuno ti aveva consigliato: > https://pypi.org/project/pynput/ > > Funziona con un modello a callback, che potrebbe o no essere il > modello migliore per il tuo caso. > C'è un esempio nella pagina che ho riportato, nella sezione > Monitoring the keyboard. > > Ciao Manlio. > Ho letto la guida qui: https://pynput.readthedocs.io/en/latest/keyboard.html > L’avevo già letta tempo fa quando, come dici giustamente, questo modulo mi fu > consigliato. Ma ora come allora, continuo a non capirlo. E’ troppo complesso > per me, mi sfugge proprio il come funziona. > Innanzitutto, cos’è un modello a callback? >
https://it.wikipedia.org/wiki/Callback > Io ho capito che va lanciato un listener della tastiera che apre un suo > thread e si mette in ascolto. Ma poi, come leggo i tasti premuti? > Come faccio a dire al listner, che in un determinato punto del programma mi > aspetto che l’utente prema le 4 frecce, e, qualche riga più avanti, una “s” o > una “n”? > > Mi servirebbe un esempio pratico, poter scambiare qualche mail con qualcuno > che lo usa. > Se il tuo programma è ancora quello che avevi postato su Dropbox tempo fa, allora ti consiglio di usare la libreria curses: https://docs.python.org/3.7/howto/curses.html. Purtroppo quel tutorial è obsoleto, dato che l' implementazioni alternativa UniCurses sembra non sia più sviluppata. Ignora anche il consiglio di usare il modulo Console. Usa invece https://pypi.org/project/windows-curses, se sei su Windows. Questa sembra sia aggiornata. C'è una richiesta aperta di supportare curses anche su Windows nella libreria standard, ma è ferma: https://bugs.python.org/issue2889 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... > Un’altra cosa, vedo riportato spesso negli esempi relativi a questo modulo, > la parola chiave with. Ho provato a carecarne una spiegazione nella > documentazione di Python ma temo di non aver avuto successo. Assieme a > lambda, map e filter, sono cose che non mi è ancora capitato di studiare ma > che dovrò affrontare quanto prima. > Inizia con il tutorial: https://docs.python.org/3/tutorial/errors.html#predefined-clean-up-actions poi passa al manuale di fiferimento: https://docs.python.org/3/reference/compound_stmts.html#the-with-statement Ciao Manlio _______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python