wxPython es un contenedor para la API de interfaz gráfica de usuario multiplataforma (a menudo denominada " kit de herramientas ") wxWidgets (escrita en C++ ) para el lenguaje de programación Python . Es una de las alternativas a Tkinter . Se implementa como un módulo de extensión de Python ( código nativo ).
Historia
En 1995, Robin Dunn necesitaba una aplicación GUI que se pudiera implementar en sistemas HP-UX y que también pudiera ejecutar Windows 3.1 en un corto período de tiempo. Necesitaba una solución multiplataforma . Mientras evaluaba soluciones gratuitas y comerciales, se encontró con enlaces de Python en la página web del kit de herramientas wxWidgets (conocido como wxWindows en ese momento). Esta fue la introducción de Dunn a Python. Junto con Harri Pasanen y Edward Zimmerman, desarrolló esos enlaces iniciales en wxPython 0.2. [2]
En agosto de 1998 se publicó la versión 0.3 de wxPython. Fue creada para wxWidgets 2.0 y funcionaba en Win32, con una versión wxGTK en desarrollo. [3]
Las primeras versiones del contenedor se crearon a mano. Sin embargo, el código se volvió difícil de mantener y de mantener sincronizado con las versiones de wxWidgets. En 1997, se crearon versiones con SWIG , lo que redujo en gran medida la cantidad de trabajo para actualizar el contenedor. [2]
Proyecto Fénix
En 2010, comenzó el Proyecto Phoenix, un esfuerzo por limpiar la implementación de wxPython y, en el proceso, hacerla compatible con Python 3. [4] El proyecto es una nueva implementación de wxPython, enfocada en mejorar la velocidad, la capacidad de mantenimiento y la extensibilidad. Al igual que la versión anterior de wxPython, envuelve el kit de herramientas C++ de wxWidgets y brinda acceso a las partes de la interfaz de usuario de la API de wxWidgets . [5]
Con el lanzamiento de 4.0.0a1 wxPython en 2017, la versión de Project Phoenix se convirtió en la versión oficial. [6] wxPython 4.x es la versión actual que se está desarrollando a partir de junio de 2022. [7]
Usar
wxPython permite utilizar Python para aplicaciones GUI multiplataforma que requieren muy poco o ningún código específico de la plataforma.
Ejemplo
Este es un módulo simple " Hola mundo ", que representa la creación de los dos objetos principales en wxPython (el objeto de la ventana principal y el objeto de la aplicación), seguido del paso del control al sistema controlado por eventos (mediante una llamada MainLoop()) que administra la parte interactiva del usuario del programa.
#!/usr/bin/env python3
importar wx
app = wx . App ( False ) # Crea una nueva aplicación, no redirige stdout/stderr a una ventana.
frame = wx . Frame ( None , title = "Hello World" ) # Un Frame es una ventana de nivel superior.
frame . Show ( True ) # Muestra el frame.
app . MainLoop ()
Este es otro ejemplo del botón Cerrar de wxPython con la GUI de wxPython mostrada en el sistema operativo Windows 10.

importar wx
clase WxButton ( wx.Frame ) :
def __init__ ( self , * argumentos , ** número ) :
super ( WxButton , self ) .__ init __ ( * argumentos , ** número )
self.InitUI ()
def InitUI ( self ) :
pnl = wx.Panel ( self ) botonCerrar = wx.Boton ( pnl , etiqueta = ' Cerrarme ' , pos = ( 20 , 20 ) )
cerrarBoton .Bind ( wx.EVT_BUTTON , self.OnClose )
self.SetSize ( ( 350 , 250 ) ) self.SetTitle ( ' Botón Cerrar ' ) self.Centre ( )
def OnClose ( self , e )
: self.Close ( Verdadero )
def main ( ) :
aplicación = wx.App ( ) ex = WxButton ( Ninguno ) ex.Show ( ) aplicación.MainLoop ( )
si __nombre__ == "__principal__" :
principal ()
Licencia
Al ser un contenedor, wxPython utiliza la misma licencia de software libre utilizada por wxWidgets ( licencia wxWindows ) [8] —la cual está aprobada por la Free Software Foundation y la Open Source Initiative .
Aplicaciones desarrolladas con wxPython
- Chandler , un administrador de información personal
- Dropbox , cliente de escritorio para el almacenamiento en la nube de Dropbox [9]
- Editra , un editor de texto multiplataforma
- Google Drive , cliente de escritorio para el sistema de almacenamiento basado en la nube de Google [10]
- GRASS GIS , un sistema de información geográfica gratuito y de código abierto
- Metamorphose , un renombrador por lotes
- Phatch , un procesador de fotografías por lotes
- PlayOnLinux y PlayOnMac , interfaces para Wine
- PsychoPy , herramienta de creación de experimentos para la investigación en neurociencia y psicología
Referencias
Citas
- ^ "Registro de cambios de wxPython". wxPython . 2024-09-11 . Consultado el 2024-11-28 .
- ^ Equipo ab , The wxPython (14 de julio de 2017). «Historia de wxPython». wxPython . Consultado el 25 de junio de 2022 .
- ^ "Grupos de Yahoo!: mensajes de python-announce-list: mensaje 95 de 1083". 12 de marzo de 2001. Archivado desde el original el 12 de marzo de 2001. Consultado el 25 de junio de 2022 .
- ^ "Objetivos del Proyecto Fénix" . Consultado el 17 de marzo de 2016 .
- ^ "Archivo readme del proyecto Phoenix en GitHub". GitHub . Consultado el 1 de enero de 2014 .
- ^ Robin (16 de abril de 2017). «Lanzamiento de wxPython 4.0.0a1». wxPython . Consultado el 25 de junio de 2022 .
- ^ Equipo, The wxPython (21 de noviembre de 2020). «wxPython 4.1.1 lanzado». wxPython . Consultado el 25 de junio de 2022 .
- ^ "Aviso de copyright". Archivado desde el original el 16 de febrero de 2009. Consultado el 27 de febrero de 2009 .
- ^ "6 lecciones de Dropbox: un millón de archivos guardados cada 15 minutos". 14 de marzo de 2011.
- ^ "Componentes y licencias de código abierto". Google Inc. Consultado el 28 de enero de 2013 .
Fuentes
- Rappin, Noel; Dunn, Robin (1 de marzo de 2006). wxPython en acción . Greenwich: Manning Publications . pág. 552. ISBN. 978-1-932394-62-7.
Lectura adicional
- Precord, Cody (diciembre de 2010). wxPython 2.8 Application Development Cookbook . Greenwich: Packt Publishing . pág. 308. ISBN. 978-1-84951-178-0.
Enlaces externos
- Sitio web oficial
- Serie de tutoriales sobre widgets de wxPython
- Página principal del Proyecto Phoenix
- Lista de aplicaciones desarrolladas con wxPython