Re: [Python-es] Detectar una tecla
El 20 de junio de 2011 09:33, Javier Collado escribió: > Hola, > > El día 20 de junio de 2011 15:49, Douglas Jiménez > escribió: > > Quizás si explico lo que quiero hacer .. > > Quizá en lugar de desarrollar la aplicación para consola, sea más > práctico hacerlo para un entorno de ventanas... > Un saludo, >Javier > Siguiendo la recomendación de Javier y por aquello de que "Unas cuantas horas de ensayo y error pueden ayudarte a ahorrar unos minutos de revisión de los manuales", llevo ya unas cuantas horas leyendo el manual de TKinter de Fredrik Lundh, que conseguí en la red. Así que esta parte del hilo creo que va dirigida a quienes manejen TKinter. Al incio del capítulo 7, en la página 19, Lundh da un ejemplo para manejar el evento de capturar pulsaciones del ratón. Lo corrí haciendo las pequeñas modificaciones necesarias para Python 3.1 y todo perfecto. Por supuesto que se me vino la idea de adaptarlo para las pulsaciones de teclado y lo convertí en esto: # Archivo: tecla.py from tkinter import * def main(): root = Tk() def callback(evento): print("La tecla es", evento.keycode) # Línea clave del programa frame = Frame(root, width=100, height=100) frame.bind("", callback) frame.pack() root.mainloop() con lo cual pretendo que al presionar una tecla se imprima algo relacionado con ella en el terminal (es la que llamé Línea clave del programa). En la línea clave ha cambiado .keycode por .keysym, keysym_num y otras cosas, pero nada de nada. Como es natural, necesito una orientación a este respecto. Es claro que no he entendido cómo manejar el evento . Gracias. Douglas. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Detectar una tecla
El lun, 20-06-2011 a las 16:03 +0200, Javier Collado escribió: > Quizá en lugar de desarrollar la aplicación para consola, sea más > práctico hacerlo para un entorno de ventanas en cualquiera de los > frameworks disponibles: gtk, qt, wxwindows, etc. > > Por ejemplo, en gtk, que es el que conozco mejor, no habría problema > en capturar los eventos de teclado y, además, podrías controlar > fácilmente el tamaño de letra utilizado que sería uno de los > requisitos de acuerdo con la explicación. > Yo leyendo el hilo, estaba pensando que sería más práctico aún hacerlo en un entorno web. Y si te queda chulo incluso puedes sacar unos durillos extra. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Detectar una tecla
En/na Douglas Jiménez ha escrit: Quizás si explico lo que quiero hacer se les puede hacer más fácil orientarme. Quiero escribir algo parecido a la instrucción input para un niño de tres años. Él se sabe todas las letras del alfabeto, pero no sabe leer (por supuesto). La idea es hacer que vaya escribiendo letras en secuencia, dirigido por un adulto, hasta que tenga una palabra, luego de lo cual al presionar pasará algo relacionado con el significado de la palabra (lo cual sé programar). Las letras se le aparecerán en un formato grande y en una ventana ad-hoc, donde sucederá el evento ya comentado. Por eso necesito una rutina que se quede esperando la letra para luego ponerla en cierto lugar de la ventana. La palabra, por supuesto, la formo por concatenación de las letras. Échale un vistazo a pygame (http://pygame.org), tal vez te sirva. Saludos ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Detectar una tecla
Hola, El día 20 de junio de 2011 15:49, Douglas Jiménez escribió: > Quizás si explico lo que quiero hacer se les puede hacer más fácil > orientarme. Quiero escribir algo parecido a la instrucción input para un > niño de tres años. Él se sabe todas las letras del alfabeto, pero no sabe > leer (por supuesto). La idea es hacer que vaya escribiendo letras en > secuencia, dirigido por un adulto, hasta que tenga una palabra, luego de lo > cual al presionar pasará algo relacionado con el significado de la > palabra (lo cual sé programar). > > Las letras se le aparecerán en un formato grande y en una ventana ad-hoc, > donde sucederá el evento ya comentado. Por eso necesito una rutina que se > quede esperando la letra para luego ponerla en cierto lugar de la ventana. > La palabra, por supuesto, la formo por concatenación de las letras. Quizá en lugar de desarrollar la aplicación para consola, sea más práctico hacerlo para un entorno de ventanas en cualquiera de los frameworks disponibles: gtk, qt, wxwindows, etc. Por ejemplo, en gtk, que es el que conozco mejor, no habría problema en capturar los eventos de teclado y, además, podrías controlar fácilmente el tamaño de letra utilizado que sería uno de los requisitos de acuerdo con la explicación. Un saludo, Javier ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Detectar una tecla
El 20 de junio de 2011 08:45, Javier Collado escribió: > Hola, > > El día 20 de junio de 2011 13:57, Douglas Jiménez > escribió: > > Gracias, Javier. Sin embargo, por terminal intenté esto: > > > > > pero me da un error: > > Para utilizar curses hay que inicializar el terminal ... Quizás si explico lo que quiero hacer se les puede hacer más fácil orientarme. Quiero escribir algo parecido a la instrucción input para un niño de tres años. Él se sabe todas las letras del alfabeto, pero no sabe leer (por supuesto). La idea es hacer que vaya escribiendo letras en secuencia, dirigido por un adulto, hasta que tenga una palabra, luego de lo cual al presionar pasará algo relacionado con el significado de la palabra (lo cual sé programar). Las letras se le aparecerán en un formato grande y en una ventana ad-hoc, donde sucederá el evento ya comentado. Por eso necesito una rutina que se quede esperando la letra para luego ponerla en cierto lugar de la ventana. La palabra, por supuesto, la formo por concatenación de las letras. Gracias. Douglas. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Detectar una tecla
Hola, El día 20 de junio de 2011 13:57, Douglas Jiménez escribió: > Gracias, Javier. Sin embargo, por terminal intenté esto: > pero me da un error: Para utilizar curses hay que inicializar el terminal y asegurarse de dejarlo como estaba en el momento de terminar la aplicación (esto se puede hacer con curses.wrapper). Si decides utilizar curses, te recomiendo echarle un vistazo a la documentación: http://docs.python.org/library/curses.html O utilizar alguna librería de más alto nivel como urwid: http://excess.org/urwid/ En cualquier caso, un ejemplo más completo sería el siguiente: import curses class App(object): def run(self): curses.wrapper(self.run_curses) def run_curses(self, window): window.addstr('Pulse una tecla para continuar...') window.getch() app = App() app.run() Un saludo, Javier ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Detectar una tecla
El día 20 de junio de 2011 12:46, Douglas Jiménez escribió: > ¡Hola! > > ¿Qué función en Python me permite detectar una tecla para controlar un > proceso con ella? Por ejemplo, para colocar algo como > > *** ¿Está de acuerdo, í, o? o *** Presione para continuar. Prueba con esta receta: http://code.activestate.com/recipes/203830/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Detectar una tecla
El 20 de junio de 2011 07:07, Javier Collado escribió: > Hola, > > El día 20 de junio de 2011 12:46, Douglas Jiménez > escribió: > > > De mis tiempos con Pascal recuerdo la función ReadKey: > > En C la función equivalente a ReadKey se llama getch. En python tenemos: > - curses.window.getch (linux) > - msvcrt.getch (windows) > Gracias, Javier. Sin embargo, por terminal intenté esto: >>> import curses >>> tecla = '' >>> while tecla == '': ... tecla = curses.window.getch() pero me da un error: Traceback (most recent call last): File "", line 2, in AttributeError: 'module' object has no attribute 'window' ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Detectar una tecla
Hola, El día 20 de junio de 2011 12:46, Douglas Jiménez escribió: > De mis tiempos con Pascal recuerdo la función ReadKey: En C la función equivalente a ReadKey se llama getch. En python tenemos: - curses.window.getch (linux) - msvcrt.getch (windows) Para linux, existen otras soluciones basadas en termios cuando no necesitas programar en curses: http://snippets.dzone.com/posts/show/915 http://love-python.blogspot.com/2010/03/getch-in-python-get-single-character.html Un saludo, Javier ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
[Python-es] Detectar una tecla
¡Hola! ¿Qué función en Python me permite detectar una tecla para controlar un proceso con ella? Por ejemplo, para colocar algo como *** ¿Está de acuerdo, í, o? o *** Presione para continuar. De mis tiempos con Pascal recuerdo la función ReadKey: Ej: repeat proceso a realizar tecla=ReadKey until tecla in ['S', 's', 'N', 'n'] Gracias. Douglas ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/