2.13.1 Application Objects

Los objetos aplicación tienen, entre otros, los siguientes métodos:

makeusermenus ()
Redefinir este método si son necesarios los menúes en la aplicación. Concatena los menúes al atributo menubar.

getabouttext ()
Redefinir este método para develver una cadena de texto que describa la aplicación. Opcionalmente, redefinir el método do_about() para mensajes ``acerca de...'' más elaborados.

mainloop ([mask[, wait]])
Esta rutina es el bucle de eventos principal, llamarlo para dejar la aplicación en estado normal de funcionamiento. Mask es una máscara de los eventos a manejar, wait es el número de tics que se desea dejar a otra aplicación concurrente (el valor predeterminado es 0, lo que no es buena idea, probablemente). Aunque todavía está permitido levantar self para salir del bucle principal, no es el modo recomendado: Es mejor llamar a self._quit().

El bucle de eventos está dividido en pequeñas partes, cada una de las cuales se puede redefinir. Los métodos predefinidos se ocupan de despachar los eventos a las ventanas y diálogos, gestionar los arrastres y cambios de tamaño, los Apple Events, eventos de ventanas ajenas al FrameWork, etc.

En general, todos los gestores de eventos deben devolver 1 si el evento ha sido gestionado por completo y 0 en caso contrario (porque la ventana activa no pertenezca al FrameWork, por ejemplo). Esto es necesario para que los eventos de actualización y similares se traspasen a otras ventanas, como la ventana de consola Sioux. No está permitido llamar a MacOS.HandleEvent() dentro de our_dispatch o sus respectivas llamadas, pues se podría causar un bucle infinito si se llama al código desde un gestor de eventos mediante el gestor de eventos interior de Python.

asyncevents (onoff)
Llamar a este método con un parámetro no cero para activar la gestión de eventos asíncrona. Le indica al bucle del intérprete interno que llame al gestor de eventos de la aplicación async_dispatch siempre que haya eventos disponibles. De este modo, se consigue que las actualizaciones de ventanas del FrameWork y el interfaz de usuario sigan funcionando durante los cálculos largos, pero ralentizará el intérprete y dará resultados inesperados en el código no reentrante (el propio FrameWork). Por omisión async_dispatch llama inmediatamente a our_dispatch pero se puede redefinir esto para gestionar asíncronamente sólo algunos eventos. Los eventos no gestionados se traspasarán a Sioux y similares.

Devuelve el valor anterior de onoff.

_quit ()
Finaliza la llamada al mainloop() en ejecución en el siguiente momento adecuado.

do_char (c, event)
El usuario ha tecleado el carácter c. Los detalles completos del evento se hallan en la estructura event. Se puede proporcionar este método en un objeto Window, lo que redefine el gestor a nivel de la aplicación si la ventana es la principal.

do_dialogevent (event)
Se llama al iniciar el bucle de eventos para gestionar los eventos de diálogos no modales. El método predefinido se limita a despachar el evento al diálogo relevante (no a través del objeto DialogWindow involucrado). Redefinir si se desea una gestión especial de los eventos del diálogo (atajos de teclado, etc.).

idle (event)
Invocado por el bucle de eventos principal cuando no hay eventos disponibles. Se pasa el evento nulo (para poder mirar la posición del ratón, etc.).


Ver Sobre este documento... para obtener información sobre sugerencias.