Desarrollo de aplicaciones con wxPython en Python 3.10: Creación de interfaces gráficas
wxPython es un framework de interfaz gráfica de usuario (GUI) para Python que proporciona una amplia gama de widgets y herramientas para crear aplicaciones de escritorio. Es multiplataforma, lo que significa que las aplicaciones creadas con wxPython se pueden ejecutar en Windows, macOS y Linux.
En este tutorial, aprenderemos a crear una interfaz gráfica básica con wxPython en Python 3.10.
Instalación
Para instalar wxPython, podemos usar el administrador de paquetes de nuestra distribución de Linux o macOS. En Windows, podemos instalar wxPython desde el sitio web oficial.
Una vez instalado wxPython, podemos importarlo en nuestro código de Python:
import wx
Creación de una ventana
El primer paso para crear una interfaz gráfica con wxPython es crear una ventana. Podemos hacer esto usando la clase wx.Frame
:
class MyFrame(wx.Frame):
def __init__(self, parent):
super().__init__(parent, title="My Application")
# Centramos la ventana en la pantalla
self.Centre()
# Mostramos la ventana
self.Show()
app = wx.App()
frame = MyFrame(None)
app.MainLoop()
Este código creará una ventana con el título «My Application». La ventana se centrará en la pantalla y se mostrará.
Añadiendo widgets
Una vez que tenemos una ventana, podemos empezar a añadir widgets a ella. Los widgets son elementos de la interfaz gráfica de usuario, como botones, etiquetas, cuadros de texto, etc.
Para añadir un widget a una ventana, podemos usar el método Add()
:
class MyFrame(wx.Frame):
def __init__(self, parent):
super().__init__(parent, title="My Application")
# Centramos la ventana en la pantalla
self.Centre()
# Añadimos un botón a la ventana
button = wx.Button(self, label="Click me")
button.Bind(wx.EVT_BUTTON, self.OnButtonClick)
# Mostramos la ventana
self.Show()
def OnButtonClick(self, event):
# Hacemos algo cuando se hace clic en el botón
print("El botón se ha pulsado")
app = wx.App()
frame = MyFrame(None)
app.MainLoop()
Este código añadirá un botón a la ventana con el texto «Click me». Cuando se haga clic en el botón, se imprimirá el mensaje «El botón se ha pulsado» en la consola.
Ejemplo completo
Aquí hay un ejemplo completo de una interfaz gráfica básica con wxPython:
import wx
class MyFrame(wx.Frame):
def __init__(self, parent):
super().__init__(parent, title="My Application")
# Centramos la ventana en la pantalla
self.Centre()
# Añadimos una etiqueta a la ventana
label = wx.StaticText(self, label="Hola, mundo!")
# Añadimos un cuadro de texto a la ventana
text_box = wx.TextCtrl(self, size=(200, 20))
# Añadimos un botón a la ventana
button = wx.Button(self, label="Aceptar")
button.Bind(wx.EVT_BUTTON, self.OnButtonClick)
# Organizamos los widgets en la ventana
layout = wx.BoxSizer(wx.VERTICAL)
layout.Add(label, 0, wx.ALL, 5)
layout.Add(text_box, 0, wx.ALL, 5)
layout.Add(button, 0, wx.ALL, 5)
self.SetSizer(layout)
def OnButtonClick(self, event):
# Hacemos algo cuando se hace clic en el botón
print(text_box.GetValue())
app = wx.App()
frame = MyFrame(None)
app.MainLoop()
Este código creará una ventana con una etiqueta, un cuadro de texto y un botón. Cuando se haga clic en el botón, el texto del cuadro de texto se imprimirá en la consola.
Conclusión
En este tutorial, aprendimos a crear una interfaz gráfica básica con wxPython en Python 3.10