FoxPress – Julio - Agosto 2004

 

Pantalla de Splash en Python con wxPython

 

 

Por la Redacción de Foxpress                                                           splash.py

 


             Toda aplicación que se precie, tiene una pantalla de inicio en el que se suele presentar el logotipo de la aplicación y algunos datos relevantes. Muchas veces es la primera impresión que recibe el cliente y conviene cuidar bastante esa pantalla.

 

   Python, por defecto no es capaz de hacer pantallas, pero existe un conjunto de librerías que son la adaptación de X-Windows para su uso con Python (wxPython) que nos permiten dotar de capacidades gráficas GUI a nuestras aplicaciones.

 

   Un ejemplo sería éste que nos permite mostrar una pantalla de splash

 

   El código sería el siguiente:

 

import sys, os, time

 

import wx                 

import images

import wx.html

 

def opj(path):

    """Convierte el path a el específico de la plataforma (separador)"""

    return apply(os.path.join, tuple(path.split('/')))

 

 

#---------------------------------------------------------------------------

#---------------------------------------------------------------------------

 

class MySplashScreen(wx.SplashScreen):

    def __init__(self):

        bmp = wx.Image(opj("bitmaps/splash.gif")).ConvertToBitmap()

       

        wx.SplashScreen.__init__(self, bmp,

                                wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT,

                                3000, None, -1)

       

        self.Bind(wx.EVT_CLOSE, self.OnClose)

 

    def OnClose(self, evt):

        self.Hide()

        self.Destroy()

        return 1

      

class MyApp(wx.App):

    def OnInit(self):

 

        wx.InitAllImageHandlers()

 

        splash = MySplashScreen()

        splash.Show()

 

        return True

 

app = MyApp(0)

app.MainLoop()

   Merece la pena comentar:

    Primero se cargan las librerías que se van a utilizar. Merece la pena comentar el caso de la librería imágenes que nos permitirá cambiar el tiempo de ejecución un gif a bmp y la definición de la función opj(path) que espera recibir como parámetro el path. Esta función cambiará el formato de los separadores al específico del sistema operativo.

    Primero viene la definición de la clase de la ventana de splash y luego la definición de la clase de la  aplicación.

 

   Como se puede ver es la propia aplicación la que instancia la clase de la pantalla de Splash con la instrucción splash = MySplashScreen()

 

    En la definición de la pantalla de Splash podemos ver que durará 3.000 milisegundos y también como convertir en tiempo de ejecución un gif a bmp con la instrucción convertobitmap()

 

    Si se ejecutara esta aplicación, unicamente veríamos durante unos 3 segundos el logotipo de entrada que en este caso es el siguiente:

 

 

 

 

FoxPress – Julio – Agosto de 2004