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