wxPython - Outils GUI Builder

Créer une bonne interface graphique par codage manuel peut être fastidieux. Un outil de conception graphique graphique est toujours pratique. De nombreux IDE de développement GUI ciblés sur wxPython sont disponibles. Voici quelques-uns d'entre eux -

  • wxFormBuilder
  • wxDesigner
  • wxGlade
  • BoaConstructor
  • gui2py

wxFormBuilderest un constructeur d'interface graphique WYSIWYG multiplateforme open source qui peut traduire la conception de l'interface graphique wxWidget au format C ++, Python, PHP ou XML. Une brève introduction à l'utilisation de wxFormBuilder est donnée ici.

Tout d'abord, la dernière version de wxFormBuilder doit être téléchargée et installée à partir de http://sourceforge.net/projects/wxformbuilder/. A l'ouverture de l'application, un nouveau projet avec une zone grise vierge au centre apparaît.

Donnez un nom approprié au projet et choisissez Python comme langage de génération de code. Cela se fait dans la fenêtre des propriétés de l'objet comme indiqué dans l'image suivante -

Ensuite, dans l'onglet «Formulaires» de la palette des composants, choisissez Cadre.

Ajoutez un wxBoxSizer vertical à partir de l'onglet «Layouts».

Ajoutez les contrôles nécessaires dans la boîte avec les légendes appropriées. Ici, un StaticText (étiquette), deux objets TextCtrl (zones de texte) et un objet wxButton sont ajoutés. Le cadre ressemble à l'image suivante -

Activez Expand et Stretch sur ces trois contrôles. Dans les propriétés de l'objet pour l'objet wxButton, affectez une fonction findquare () à l'événement OnButtonClick.

Enregistrez le projet et appuyez sur F8 pour générer du code Python pour l'interface graphique développée. Laissez le fichier généré être nommé Demo.py

Dans le script Python exécutable, importez demo.py et définissez la fonction FindSquare (). Déclarez l'objet Application et démarrez une boucle d'événement principal. Voici le code exécutable -

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

Le code ci-dessus produit la sortie suivante -