wxPython - Herramientas de creación de GUI

Crear una GUI de buen aspecto mediante la codificación manual puede ser tedioso. Una herramienta de diseño de GUI visual siempre es útil. Hay disponibles muchos IDE de desarrollo de GUI dirigidos a wxPython. A continuación se muestran algunos de ellos:

  • wxFormBuilder
  • wxDesigner
  • wxGlade
  • BoaConstructor
  • gui2py

wxFormBuilderes un constructor de GUI WYSIWYG multiplataforma de código abierto que puede traducir el diseño de GUI wxWidget a formato C ++, Python, PHP o XML. Aquí se ofrece una breve introducción al uso de wxFormBuilder.

En primer lugar, debe descargar e instalar la última versión de wxFormBuilder desde http://sourceforge.net/projects/wxformbuilder/. Al abrir la aplicación, aparece un nuevo proyecto con un área gris en blanco en el centro.

Dé un nombre adecuado al proyecto y elija Python como lenguaje de generación de código. Esto se hace en la ventana de propiedades del objeto como se muestra en la siguiente imagen:

Luego, en la pestaña 'Formularios' de la paleta de componentes, elija Marco.

Agregue un wxBoxSizer vertical desde la pestaña 'Diseños'.

Agregue los controles necesarios en el cuadro con los subtítulos adecuados. Aquí, se agregan un StaticText (etiqueta), dos objetos TextCtrl (cuadros de texto) y un objeto wxButton. El marco se parece a la siguiente imagen:

Habilite Expandir y Estirar en estos tres controles. En las propiedades del objeto para el objeto wxButton, asigne una función findquare () al evento OnButtonClick.

Guarde el proyecto y presione F8 para generar código Python para la GUI desarrollada. Deje que el archivo generado se llame Demo.py

En el script Python ejecutable, importe demo.py y defina la función FindSquare (). Declare el objeto Aplicación e inicie un bucle de eventos principal. A continuación se muestra el código ejecutable:

import wx 
  
#import the newly created GUI file 
import demo  
class CalcFrame(demo.MyFrame1): 
   def __init__(self,parent): 
      demo.MyFrame1.__init__(self,parent)  
		
   def FindSquare(self,event): 
      num = int(self.m_textCtrl1.GetValue()) 
      self.m_textCtrl2.SetValue (str(num*num)) 
        
app = wx.App(False) 
frame = CalcFrame(None) 
frame.Show(True) 
#start the applications 
app.MainLoop()

El código anterior produce la siguiente salida: