Créer plus d’applications GUI avancées à l’aide de l’outil PyGobject sous Linux - Partie 2
Nous continuons notre série sur la création d’applications GUI sous le bureau Linux à l’aide de PyGObject, Ceci est la deuxième partie de la série et aujourd’hui, nous parlerons de la création d’applications plus fonctionnelles à l’aide de widgets avancés.
Exigences
- Créer des applications GUI sous Linux à l’aide de PyGObject - Partie 1
Dans l’article précédent, nous avons dit qu’il y a deux façons de créer des applications GUI à l’aide de PyGObject : la méthode code-only et la méthode Glade designer, mais à partir de maintenant, nous n’expliquerons que la méthode Glade designer car c’est beaucoup plus facile pour la plupart des utilisateurs, vous pouvez apprendre la méthode code-only par vous-même en utilisant python-gtk3-tutorial.
Création d’applications GUI avancées sous Linux
1. Commençons à programmer ! Ouvrez votre concepteur Glade à partir du menu des applications.
2. Cliquez sur le bouton « Fenêtre » dans la barre latérale gauche afin d’en créer une nouvelle.
3. Cliquez sur le widget « Box » et relâchez-le dans la fenêtre vide.
4. Vous serez invité à entrer le nombre de cases que vous souhaitez, faites-en 3.
Et vous verrez que les boîtes sont créées, ces boîtes sont importantes pour nous afin de pouvoir ajouter plus d'1 widget dans une fenêtre.
5. Cliquez maintenant sur le widget de boîte et changez le type d’orientation de vertical à horizontal.
6. Afin de créer un programme simple, ajoutez un widget « Entrée de texte », « Texte de la boîte déroulante » et un « Bouton » pour chacune des boîtes, vous devriez avoir quelque chose comme ceci.
7. Cliquez maintenant sur le widget « window1 » dans la barre latérale droite et changez sa position en « Centre ».
Faites défiler jusqu’à la section « Apparence ». Et ajoutez un titre pour la fenêtre « Mon programme ».
8. Vous pouvez également choisir une icône pour la fenêtre en cliquant sur la case « Nom de l’icône ».
9. Vous pouvez également modifier la hauteur et la largeur par défaut de l’application. Après tout cela, vous devriez avoir quelque chose comme ça.
Dans n’importe quel programme, l’une des choses les plus importantes est de créer une fenêtre « À propos », pour ce faire, nous devrons d’abord changer le bouton normal que nous avons créé auparavant en un bouton de stock, regardez l’image.
10. Maintenant, nous allons devoir modifier certains signaux afin d’exécuter des actions spécifiques lorsqu’un événement se produit sur nos widgets. Cliquez sur le widget de saisie de texte, passez à l’onglet « Signaux » dans la barre latérale droite, recherchez « activé » et changez son gestionnaire en « enter_button_clicked », le signal « activé » est le signal par défaut qui est envoyé lorsque la touche « Entrée » est enfoncée tout en se concentrant sur le widget de saisie de texte.
Nous devrons ajouter un autre gestionnaire pour le signal « clicked » pour notre widget de bouton à propos, cliquer dessus et changer le signal « clicked » en « button_is_clicked ».
11. Allez dans l’onglet « Commun » et marquez « A le focus » comme il suit (pour donner le focus par défaut pour le bouton à propos au lieu de l’entrée).
12. Maintenant, à partir de la barre latérale gauche, créez une nouvelle fenêtre « À propos de la boîte de dialogue ».
Et vous remarquerez que la fenêtre « À propos de la boîte de dialogue » est créée.
Modifions-le. Assurez-vous d’insérer les paramètres suivants à partir de la barre latérale droite.
Après avoir effectué les paramètres ci-dessus, vous obtiendrez le suivant à propos de Windows.
Dans la fenêtre ci-dessus, vous remarquerez l’espace vide, mais vous pouvez le supprimer en diminuant le nombre de cases de 3 à 2 ou vous pouvez y ajouter n’importe quel widget si vous le souhaitez.
13. Enregistrez maintenant le fichier dans votre dossier personnel sous le nom « ui.glade » et ouvrez un éditeur de texte et entrez le code suivant à l’intérieur.
#!/usr/bin/python
-*- coding: utf-8 -*-
from gi.repository import Gtk
class Handler:
def button_is_clicked(self, button):
## The ".run()" method is used to launch the about window.
ouraboutwindow.run()
## This is just a workaround to enable closing the about window.
ouraboutwindow.hide()
def enter_button_clicked(self, button):
## The ".get_text()" method is used to grab the text from the entry box. The "get_active_text()" method is used to get the selected item from the Combo Box Text widget, here, we merged both texts together".
print ourentry.get_text() + ourcomboboxtext.get_active_text()
## Nothing new here.. We just imported the 'ui.glade' file.
builder = Gtk.Builder()
builder.add_from_file("ui.glade")
builder.connect_signals(Handler())
ournewbutton = builder.get_object("button1")
window = builder.get_object("window1")
## Here we imported the Combo Box widget in order to add some change on it.
ourcomboboxtext = builder.get_object("comboboxtext1")
## Here we defined a list called 'default_text' which will contain all the possible items in the Combo Box Text widget.
default_text = [" World ", " Earth ", " All "]
## This is a for loop that adds every single item of the 'default_text' list to the Combo Box Text widget using the '.append_text()' method.
for x in default_text:
ourcomboboxtext.append_text(x)
## The '.set.active(n)' method is used to set the default item in the Combo Box Text widget, while n = the index of that item.
ourcomboboxtext.set_active(0)
ourentry = builder.get_object("entry1")
## This line doesn't need an explanation :D
ourentry.set_max_length(15)
## Nor this do.
ourentry.set_placeholder_text("Enter A Text Here..")
## We just imported the about window here to the 'ouraboutwindow' global variable.
ouraboutwindow = builder.get_object("aboutdialog1")
## Give that developer a cookie !
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main
Enregistrez le fichier dans votre répertoire personnel sous le nom « myprogram.py « , donnez-lui la permission d’exécution et exécutez-le.
$ chmod 755 myprogram.py
./myprogram.pyThis is what you will get, after running above script.Entrez un texte dans la zone de saisie, appuyez sur la touche « Entrée » du clavier, et vous remarquerez que la phrase est imprimée sur le shell.
C’est tout pour l’instant, ce n’est pas une application complète, mais je voulais juste vous montrer comment lier les choses ensemble à l’aide de PyGObject, vous pouvez voir toutes les méthodes pour tous les widgets GTK sur gtkobjects.
Il suffit d’apprendre les méthodes, de créer les widgets à l’aide de Glade et de connecter les signaux à l’aide du fichier Python, c’est tout ! Ce n’est pas difficile du tout mon ami.
Nous vous expliquerons plus de nouvelles choses sur PyGObject dans les prochaines parties de la série, d’ici là, restez à jour et n’oubliez pas de nous donner vos commentaires sur l’article.
























