wxPython - wxPython

WxPython
WxPython-logo.png
Desarrollador (es) Robin Dunn
Harri Pasanen
Versión inicial 1998 ; Hace 23 años ( 1998 )
Lanzamiento estable
4.1.1 / 21 de noviembre de 2020 ; hace 9 meses ( 21/11/2020 )
Repositorio
Escrito en C ++ / Python
Sistema operativo Multiplataforma
Licencia Licencia wxWindows
Sitio web wxpython .org

wxPython es un contenedor para la API GUI multiplataforma (a menudo denominada " kit de herramientas ") wxWidgets (que está escrito en C ++ ) para el lenguaje de programación Python . Es una de las alternativas a Tkinter . Está implementado como un módulo de extensión de Python ( código nativo ).

Licencia

Al ser un contenedor, wxPython utiliza la misma licencia de software libre utilizada por wxWidgets ( licencia de wxWindows ), que está aprobada por la Free Software Foundation y la Open Source Initiative .

Historia

wxPython se creó cuando Robin Dunn necesitaba implementar una GUI en sistemas HP-UX y también en Windows 3.1 en unas pocas semanas. Mientras evaluaba soluciones comerciales, encontró enlaces de Python para el kit de herramientas wxWidgets. Así, aprendió Python y, en poco tiempo, junto con Harri Pasanen , se convirtió en uno de los principales desarrolladores de wxPython, que surgió a partir de esos enlaces iniciales.

Las primeras versiones del contenedor se crearon a mano. Sin embargo, pronto el código base se volvió muy difícil de mantener y sincronizar con las versiones de wxWidgets. Las versiones posteriores se crearon con SWIG , lo que redujo en gran medida la cantidad de trabajo para actualizar el contenedor. La primera versión "moderna" se anunció en 1998.

Ejemplo

Este es un módulo simple " Hola mundo ", que muestra la creación de los dos objetos principales en wxPython (el objeto de la ventana principal y el objeto de la aplicación), seguido de pasar el control al sistema controlado por eventos (llamando MainLoop()) que administra al usuario -parte interactiva del programa.

#!/usr/bin/env python3

import wx

app = wx.App(False)  # Create a new app, don't redirect stdout/stderr to a window.
frame = wx.Frame(None, title="Hello World") # A Frame is a top-level window.
frame.Show(True)     # Show the frame.
app.MainLoop()

Este es otro ejemplo de wxPython Close Button con wxPython GUI display show en el sistema operativo Windows 10.

Botón Cerrar con wxPython mostrado en Windows 10
import wx


class WxButton(wx.Frame):

    def __init__(self, *args, **kw):
        super(WxButton, self).__init__(*args, **kw)
        self.InitUI()

    def InitUI(self):
        pnl = wx.Panel(self)
        closeButton = wx.Button(pnl, label='Close Me', pos=(20, 20))

        closeButton.Bind(wx.EVT_BUTTON, self.OnClose)

        self.SetSize((350, 250))
        self.SetTitle('Close Button')
        self.Centre()

    def OnClose(self, e):
        self.Close(True)


def main():
    app = wx.App()
    ex = WxButton(None)
    ex.Show()
    app.MainLoop()


if __name__ == "__main__":
    main()

Proyecto Phoenix

El Proyecto Phoenix, que comenzó en 2010, es un esfuerzo para limpiar la implementación de wxPython y en el proceso hacerlo compatible con Python 3. Este proyecto es una nueva implementación de wxPython, enfocado en mejorar la velocidad, la capacidad de mantenimiento y la extensibilidad. Al igual que "Classic" wxPython, envuelve el kit de herramientas wxWidgets C ++ y proporciona acceso a las partes de la interfaz de usuario de la API wx, lo que permite que las aplicaciones Python tengan una interfaz gráfica de usuario en sistemas Windows, Mac o Unix con una apariencia nativa y que requieren muy poco código específico de la plataforma, si es que lo hay.

Aplicaciones desarrolladas con wxPython

  • Chandler , un administrador de información personal
  • Dropbox , cliente de escritorio para el almacenamiento basado en la nube de Dropbox
  • Editra , un editor de texto multiplataforma
  • Google Drive , cliente de escritorio para el sistema de almacenamiento basado en la nube de Google
  • GRASS GIS , un sistema de información geográfica de código abierto y gratuito
  • Métamorphose , un renombrador de lotes
  • Phatch , un procesador de fotos por lotes
  • PlayOnLinux y PlayOnMac , vino frontales
  • PsychoPy , herramienta de creación de experimentos para la investigación en neurociencia y psicología

Referencias

Citas

Fuentes

Otras lecturas

enlaces externos