preloader

January 1, 1 | 3 minutes read
Index of content

Para ilustrar esto utilizaremos un ejemplo sencillo. Escribiremos una aplicación de manejo de eventos muy simple. Esta aplicación tener un Marco que contenga un Panel. El Panel contendrá una etiqueta usando el wx. Clase de texto estático. Definiremos un controlador de eventos llamado on_mouse_click() que moverá la etiqueta StaticText a la ubicación actual del mouse cuando se presiona el botón izquierdo del mouse. presionado. Esto significa que podemos mover la etiqueta por la pantalla. Para hacer esto, primero necesitamos determinar el widget que se usará para generar el evento. En este caso es el panel que contiene la etiqueta de texto. Habiendo hecho esto nos puede ver la clase Panel para ver qué eventos y enlaces de eventos admite. Él vueltas afuera eso el Panel clase solo directamente define apoyo para Eventos clave de navegación. Esto no es realmente lo que queremos; sin embargo, el La clase Panel extiende la clase Ventana. La clase Window admite numerosos enlaces de eventos, desde los asociados con establecer el enfoque (wx.EVT_SET_FOCUS y wx.EVT_KILL_FOCUS) para pulsaciones de teclas (wx.EVT_KEY_DOWN y wx.EVT_KEY_UP), así como el mouse eventos. Sin embargo, existen numerosos enlaces de eventos de ratón diferentes. Estos permiten clics con el botón izquierdo, medio y derecho del mouse para ser recogido, clics hacia abajo para ser identificadas, situaciones como la entrada o salida del ratón de la ventana, etc. Sin embargo, el enlace que nos interesa para un MouseEvent es el wx. enlace EVT_LEFT_DOWN; esto se activa en el MoueEvent cuando el mouse izquierdo se presiona el botón (también existe el enlace wx.EVT_LEFT_UP que se puede usar para recoger un evento que ocurre cuando se suelta el botón izquierdo del ratón). Ahora sabemos que necesitamos vincular el controlador de eventos on_mouse_click() a MouseEvent a través del archivador de eventos wx.EVT_LEFT_DOWN, por ejemplo: self.panel.Bind(wx.EVT_LEFT_DOWN, self.on_mouse_click) Todos los métodos de manejo de eventos toman dos parámetros, uno mismo y el evento del mouse. Por lo tanto, la firma del método on_mouse_click() es: def on_mouse_click(self, mouse_event): El objeto de evento del mouse tiene numerosos métodos definidos que permiten que la información sobre el mouse que se obtendrá, como el número de clics del mouse involucrados (GetClickCount()), qué botón se presionó (GetButton()) y el posición actual del mouse dentro del widget o ventana que lo contiene (GetPosition ()). Por lo tanto, podemos usar este último método para obtener la ubicación actual del mouse y luego use el método SetPosition(x, y) en el objeto StaticText para establecer su posición. El resultado final es el programa que se muestra a continuación: 90 9 Eventos en las interfaces de usuario de wxPython

comments powered by Disqus

popular post

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Read More

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Read More

• https://docs.python.org/3/ El sitio principal de documentación de Python 3. Contiene tutoriales, referencias de bibliotecas, guías de configuración e instalación, así como Python cómo-tos • https://docs.

Read More