wxPython - Ferramentas de construção de GUI

Criar uma GUI com boa aparência por meio de codificação manual pode ser entediante. Uma ferramenta de designer de GUI visual é sempre útil. Muitos IDEs de desenvolvimento de GUI direcionados a wxPython estão disponíveis. A seguir estão alguns deles -

  • wxFormBuilder
  • wxDesigner
  • wxGlade
  • BoaConstructor
  • gui2py

wxFormBuilderé um construtor de GUI WYSIWYG de plataforma cruzada de software livre que pode traduzir o design da GUI wxWidget em formato C ++, Python, PHP ou XML. Uma breve introdução ao uso de wxFormBuilder é fornecida aqui.

Em primeiro lugar, a versão mais recente do wxFormBuilder precisa ser baixada e instalada em http://sourceforge.net/projects/wxformbuilder/. Ao abrir o aplicativo, um novo projeto com uma área cinza em branco no centro aparece.

Dê um nome adequado ao projeto e escolha Python como linguagem de geração de código. Isso é feito na janela de propriedades do objeto, conforme mostrado na imagem a seguir -

Em seguida, na guia 'Formulários' da paleta de componentes, escolha Quadro.

Adicione um wxBoxSizer vertical na guia 'Layouts'.

Adicione os controles necessários na caixa com legendas adequadas. Aqui, um StaticText (rótulo), dois objetos TextCtrl (caixas de texto) e um objeto wxButton são adicionados. O quadro se parece com a seguinte imagem -

Ative Expandir e Esticar nesses três controles. Nas propriedades do objeto para o objeto wxButton, atribua uma função findquare () ao evento OnButtonClick.

Salve o projeto e pressione F8 para gerar o código Python para a GUI desenvolvida. Deixe o arquivo gerado ser nomeado como Demo.py

No script Python executável, importe demo.py e defina a função FindSquare (). Declare o objeto Aplicativo e inicie um loop de evento principal. A seguir está o código executável -

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()

O código acima produz a seguinte saída -