Recherche de site Web

Créez des applications GUI plus avancées à l'aide de l'outil PyGobject sous Linux - Partie 2


Nous poursuivons notre série sur la création d'applications GUI sous le bureau Linux à l'aide de PyGObject. Il s'agit de 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

  1. Créer des applications GUI sous Linux à l'aide de PyGObject - Partie 1

Dans l'article précédent, nous avons indiqué qu'il existe deux manières de créer des applications GUI à l'aide de PyGObject : la méthode code-only et la méthode du concepteur Glade. , mais à partir de maintenant, nous expliquerons uniquement la méthode du concepteur Glade car elle est beaucoup plus facile pour la plupart des utilisateurs, vous pouvez apprendre la méthode du code uniquement par vous-même en utilisant le didacticiel python-gtk3.

Création d'applications GUI avancées sous Linux

1. Commençons la programmation ! 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 sur la fenêtre vide.

4. Vous serez invité à saisir le nombre de cases souhaité, faites-en 3.

Et vous verrez que les cases sont créées, ces cases sont importantes pour nous afin de pouvoir ajouter plus qu'un simple 1 widget dans une fenêtre.

5. Cliquez maintenant sur le widget boîte et changez le type d'orientation de vertical à horizontal.

6. Afin de créer un programme simple, ajoutez une « Entrée de texte », un « Texte de la zone de liste déroulante » et un « Bouton » pour chacune des cases, 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 ceci.

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 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 saisie de texte, passez à l'onglet « Signaux » dans la barre latérale droite, recherchez « activé » et remplacez son gestionnaire par « 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 texte. widget d'entrée.

Nous devrons ajouter un autre gestionnaire pour le signal « cliqué » pour notre widget de bouton à propos, cliquez dessus et changez le signal « cliqué » en « button_is_clicked “.

11. Accédez à l'onglet « Common » et marquez « A le focus » comme suit (pour donner le focus par défaut au bouton À propos au lieu de l'entrée).

12. Maintenant, dans 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 réglages ci-dessus, vous obtiendrez des informations sur 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 », 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 ce nom « myprogram.py », donnez-lui l'autorisation d'exécution et exécutez-le.

chmod 755 myprogram.py
./myprogram.py
This 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 relier les choses entre elles en utilisant PyGObject, vous pouvez voir toutes les méthodes pour tous les widgets GTK sur objets gtk.

Apprenez simplement les méthodes, créez les widgets à l'aide de Glade et connectez les signaux à l'aide du fichier Python, c'est tout ! Ce n'est pas difficile du tout mon ami.

Nous expliquerons plus de nouveautés sur PyGObject dans les prochaines parties de la série, d'ici là restez informé et n'oubliez pas de nous faire part de vos commentaires sur l'article.