Points essentiels à retenir
- Les développeurs Python ont la possibilité d’exploiter GTK+ et Glade afin de concevoir des interfaces graphiques utilisateur intuitives, le tout via une interface visuelle simplifiée.
- La mise en place d’un environnement de développement pour cette approche implique l’installation de Python, GTK+, Glade, ainsi que PyGObject.
- Le recours à GTK+ et Glade dans le développement d’interfaces graphiques en Python permet d’accélérer le processus et assure une séparation nette entre la conception de l’interface et le code fonctionnel.
Python, reconnu pour sa facilité d’accès, se présente comme un choix pertinent pour l’analyse de données et le développement web. Il brille également dans la création d’applications GUI (interfaces graphiques). Avec GTK+ et Glade, le développement d’applications multiplateformes devient un processus plus aisé.
Conception d’interfaces avec GTK+ et Glade pour développeurs Python
L’alliance de GTK+ (GIMP Toolkit) et Glade Interface Designer représente un atout majeur pour les développeurs Python désireux de créer des interfaces utilisateur graphiques à la fois intuitives et esthétiques.
GTK+ se distingue comme une boîte à outils multiplateforme adaptée au développement d’interfaces graphiques. Sa compatibilité s’étend à divers systèmes d’exploitation, dont Linux, Windows et macOS.
Glade Interface Designer, l’outil complémentaire de GTK+, offre la possibilité de concevoir des interfaces graphiques sans avoir à écrire de code de mise en page. Il permet la création d’une interface graphique dans un environnement WYSIWYG, à l’aide de quelques clics et d’un simple système de glisser-déposer.
Configuration de votre environnement Python pour le développement GTK+ et Glade
La configuration de votre environnement constitue une étape fondamentale pour garantir un flux de travail à la fois fluide et efficace.
1. Installation de Python
Assurez-vous en premier lieu que Python est correctement installé sur votre système. Les exemples que vous trouverez seront basés sur Python 3, qui offre une meilleure prise en charge et une intégration plus poussée pour GTK+ et Glade. Python est souvent préinstallé sur les systèmes Linux et macOS.
Les utilisateurs de Windows peuvent procéder au téléchargement de Python via le site web officiel de Python.
2. Installation de GTK+
L’installation de GTK+ peut se faire par le biais d’un gestionnaire de paquets.
Pour les systèmes Linux de type Ubuntu et Debian, la commande à utiliser est :
sudo apt-get install libgtk-3-dev
Pour Fedora et les distributions similaires :
sudo dnf install gtk3-devel
Sur macOS, en utilisant Homebrew :
brew install gtk+3
Les utilisateurs de Windows peuvent télécharger GTK+ depuis la page de téléchargement officielle de GTK. Alternativement, si MSYS2 est installé, il est possible d’ouvrir la ligne de commande MSYS2 et d’utiliser la commande suivante :
pacman -S mingw-w64-x86_64-python-gobject
3. Installation de Glade
Glade peut être installé en utilisant la ligne de commande.
Pour les distributions Linux basées sur Ubuntu et Debian :
sudo apt-get install glade
Sur Fedora :
sudo dnf install glade
Les utilisateurs de macOS peuvent utiliser Homebrew :
brew install glade
Pour les utilisateurs de Windows, la commande suivante avec MSYS2 est appropriée :
pacman -S mingw-w64-x86_64-glade
4. Liaisons Python pour GTK+
Afin d’intégrer GTK+ à Python, l’installation de PyGObject est nécessaire. La commande à utiliser est la suivante :
pip install PyGObject
En cas d’erreur telle que « La roue de construction pour pycairo (pyproject.toml) n’a pas été exécutée » lors de l’installation de PyGObject, l’installation du paquet cairo s’avère également nécessaire.
Pour les distributions Linux basées sur Ubuntu et Debian :
sudo apt-get install libcairo2-dev
Pour Fedora :
sudo yum install cairo-devel
Sur macOS :
brew install pygobject3
5. Mise en place d’un environnement virtuel (facultatif)
Il est recommandé d’utiliser un environnement virtuel pour vos projets Python, ce qui permet d’isoler les dépendances de chaque projet. Pour créer et activer un environnement virtuel sous Linux, utilisez les commandes suivantes dans le terminal :
python -m venv myenv
source myenv/bin/activate
Sous Windows, utilisez :
python -m venv myenv
myenv\Scripts\activate
Sur macOS, pour assurer que l’environnement virtuel ait accès aux paquets installés via Brew, utilisez :
python -m venv --system-site-packages myenv
source myenv/bin/activate
6. Vérification de l’installation
Pour vérifier que GTK+ et Glade sont correctement installés, créez un script Python simple qui importe GTK :
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtkprint("Version GTK+ :", Gtk.get_major_version(), Gtk.get_minor_version())
L’exécution de ce script affichera la version GTK+ installée. Si tout se déroule correctement, cela signifie que votre environnement de développement est bien configuré.
Conception d’une application GUI basique avec Glade Interface Designer et Python
Il est possible de concevoir votre application GUI dans Glade Interface Designer et d’exporter la mise en page en tant que fichier de projet. Ce fichier de projet peut ensuite être utilisé dans votre code Python.
Conception de votre interface graphique avec Glade
L’interface glisser-déposer de Glade facilite la concentration sur l’aspect de la conception sans se perdre dans le code sous-jacent. Pour lancer Glade, utilisez le menu d’application ou la ligne de commande de votre système avec la commande suivante :
glade
L’interface de Glade devrait alors s’afficher, vous permettant de commencer la création de votre interface GUI.
Le bouton « Créer un nouveau projet », situé en haut à gauche, vous donne accès à un canevas vierge pour la conception de votre interface graphique. Glade propose une vaste sélection de widgets dans sa barre supérieure, tels que des boutons, des champs de texte et des étiquettes. Il suffit de glisser ces widgets sur votre canevas pour commencer la stylisation de votre interface. Vous avez la possibilité de redimensionner et de positionner les widgets selon vos besoins en matière de design.
Dans un premier temps, sélectionnez le widget GtkWindow à partir du menu Toplevels :
Sur la page « Général » de la barre de droite de Glade, vous trouverez une option d’identification. Cet identifiant est le nom unique du widget que vous avez ajouté. Pour cet exemple, attribuez l’identifiant « myMainWindow » au widget GtkWindow que vous venez d’ajouter.
Il est maintenant possible d’ajouter d’autres widgets à la fenêtre principale créée précédemment. Dans la barre supérieure, sous « Conteneurs », sélectionnez le widget GtkBox et glissez-le vers votre espace de travail. Attribuez-lui ensuite un identifiant, tel que « myMainBox ».
Après l’ajout du widget GtkBox, différentes options spécifiques à ce widget s’affichent à droite de votre espace de travail. C’est ici que vous pouvez ajuster l’ensemble de votre conception sans écrire la moindre ligne de code.
Ensuite, ajoutez un widget de contrôle à votre conception. Pour cela, rendez-vous dans « Control » dans la barre supérieure, sélectionnez le widget GtkButton comme exemple et glissez-le à n’importe quel endroit de la GtkBox. Donnez-lui l’identifiant « myButton ». Il est également possible de modifier le texte du bouton via l’onglet « Général » dans le panneau de droite, si vous le désirez.
Le widget GtkButton est un bouton cliquable. Vous avez donc la possibilité de définir un gestionnaire Python pour ce widget et d’écrire le code correspondant ultérieurement. Accédez à l’onglet « Signaux » du menu de droite et spécifiez un gestionnaire pour le signal « clicked ». Dans cet exemple, il sera nommé « on_button_clicked ».
Vous pouvez à présent enregistrer votre conception d’interface graphique en tant que fichier de projet, en lui donnant par exemple le nom « myDesign.glade ».
Utilisation du fichier de conception Glade dans votre code Python
Créez un fichier nommé « app.py » dans le même répertoire que votre fichier « myDesign.glade ». Collez le code suivant dans ce fichier :
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gdkclass MyApp:
def __init__(self):
self.builder = Gtk.Builder()
self.builder.add_from_file("myDesign.glade")
self.window = self.builder.get_object("myMainWindow")
self.window.connect("destroy", Gtk.main_quit)
self.button = self.builder.get_object("myButton")
self.button.connect("clicked", self.on_button_clicked)
self.color_toggle = False
def on_button_clicked(self, widget):
color = "#FF0000" if self.color_toggle else "#00FF00"
self.window.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(color))
self.color_toggle = not self.color_toggledef run(self):
self.window.show_all()
Gtk.main()if __name__ == "__main__":
app = MyApp()
app.run()
Ce code a pour fonction de changer la couleur de fond de la fenêtre chaque fois que vous cliquez sur le bouton. Les appels à `self.builder.get_object()` récupèrent les identifiants des widgets que vous avez définis dans Glade.
Pour visualiser le résultat, exécutez votre script Python via la commande suivante :
python3 app.py
Avantages de l’utilisation de GTK+ et Glade pour le développement d’interfaces graphiques Python
L’adoption de GTK+ et Glade pour le développement d’interfaces graphiques en Python offre des bénéfices considérables. Habituellement, la création d’une interface graphique requiert un investissement significatif en temps et en efforts. Cependant, avec Glade Interface Designer, ce processus est grandement accéléré. Glade met à disposition un large éventail de widgets, chacun aussi facile à manier que le bouton présenté dans l’exemple.
Un avantage majeur de Glade réside dans sa capacité à séparer la conception de l’interface graphique du code fonctionnel. Cela simplifie la maintenance et la mise à jour de l’interface. Cette approche permet de générer un code plus propre, mieux organisé, et conforme aux pratiques de programmation contemporaines.