Table des matières
Comme nous avons pu le voir dans la première partie du tutoriel, créer une fenêtre est assez simple, dans cette deuxième partie nous allons aller un peu plus loin en approfondissant ce que nous avons laissé comme base et en développant le code pour créer quelque chose avec un degré de complexité plus élevé.Ajouter un bouton
Une fois que nous quittons la fenêtre, il doit y avoir plus d'éléments à l'intérieur et l'un des plus basiques mais très important est le bouton, pour l'ajouter, nous allons ajouter btn = wx.Button (gagner) dans notre code, voyons :
import wx app = wx.App () win = wx.Frame (Aucun) btn = wx.Button (win) win.Show () app.MainLoop ()
Comme nous pouvons le voir, c'est pratiquement le même code que ci-dessus, cependant nous incluons l'instruction qui ajoute le bouton, dans l'image nous pouvons voir le résultat :
Le résultat n'est pas très esthétique puisque le bouton occupe toute la fenêtre, mais il ne faut pas se décourager, dans la section suivante nous verrons comment contrôler cela pour générer un résultat plus agréable à l'œil.
Libellés et positions
Dans la section précédente, nous avons réalisé que bien qu'il soit très facile d'ajouter plus d'éléments, nous devons pouvoir les distribuer de manière à ce qu'au niveau graphique, cela soit cohérent avec ce que nous voulons réaliser, pour cela nous pouvons établir des étiquettes, des tailles et des positions pour les éléments dans la fenêtre.
Nous allons voir le code suivant avec son résultat correspondant afin que nous puissions mieux analyser et comprendre le processus.
import wx app = wx.App () win = wx.Frame (Aucun,) loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Save') win.Show ( ) app.MainLoop ()
Comme nous pouvons le voir, nous plaçons une valeur dans le titre de la fenêtre, comme argument pour le constructeur lors de l'instanciation, puis nous créons deux boutons et chacun nous ajoutons une étiquette ou une étiquette, nous pouvons voir le résultat, bien que cela puisse ne pas être être ce que nous attendons :
En effet on peut voir que quelque chose ne va pas et qu'un des boutons n'est pas visible, c'est parce qu'on ne précise pas sa position, donc il est caché sous l'autre bouton.
Nous allons corriger cela avec le code suivant :
import wx app = wx.App () win = wx.Frame (None ,, size = (410, 335)) win.Show () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), size = (80, 25)) saveButton = wx.Button (win, label = 'Save', pos = (315, 5), size = (80, 25)) filename = wx.TextCtrl (win, pos = (5, 5), taille = (210, 25)) contenu = wx.TextCtrl (win, pos = (5, 35), taille = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) application .Boucle principale ()
Avec ce code, en plus de corriger le détail avec les positions des boutons, nous profitons et ajoutons quelques contrôles de texte, voyons dans l'image suivante à quoi tout ressemblerait.
Les choses vont déjà mieux, mais maintenant nous nous demandons, que ferons-nous avec cette fenêtre, car dans la section suivante, nous allons définir quelques fonctionnalités.
Gestion des événements
En utilisant ce type d'approche pour créer nos programmes, la vision de ce que nous faisons change également un peu, dans ce cas et les actions que le programme exécute nous appellerons des événements, ces événements sont déclenchés par des actions de l'utilisateur telles que cliquer sur un bouton, nous avons donc légèrement modifié le code pour inclure ces événements :
loadButton.Bind (wx.EVT_BUTTON, charger)
Cette ligne nous fait une union entre la fonction de chargement et l'élément, dans ce cas un bouton, nous savons donc déjà que nous devons d'abord définir une fonction puis l'affecter dans un événement lié à un élément.
Voyons le code final :
import wx def load (événement): file = open (filename.GetValue ()) contents.SetValue (file.read ()) file.close () def save (event): file = open (filename.GetValue (), ' w ') file.write (contents.GetValue ()) file.close () app = wx.App () win = wx.Frame (None ,, size = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Open') loadButton.Bind (wx.EVT_BUTTON, load) saveButton = wx.Button (bkg, label = 'Save') saveButton.Bind (wx.EVT_BUTTON, save) filename = wx.TextCtrl (bkg) contents = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (nom de fichier, proportion = 1, indicateur = wx.EXPAND) hbox.Add (loadButton, proportion = 0, flag = wx.LEFT, border = 5) hbox.Add (saveButton, proportion = 0, flag = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, proportion = 0, drapeau = wx.EXPAND | wx.ALL, border = 5) vbox.Add (contenu, proportion = 1, flag = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop ()
Ce que fait ce programme, c'est éditer des fichiers texte d'une manière assez basique, mais il nous a fait utiliser de nombreuses fonctions et applications.
Avec cela, nous terminons le tutoriel, sachant comment utiliser un boîte à outils interface utilisateur, nous vous encourageons à explorer les différentes boîtes à outils existantes, y compris celles qui sont exclusives à un système d'exploitation particulier, en vous rappelant que chaque outil nous sera utile à l'occasion.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif