Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
glade [Le 08/07/2009, 22:36]
213.95.41.13
glade [Le 11/09/2022, 11:43] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-====== Glade ======+{{tag>​Xenial programmation}}
  
-Glade est un outil interactif de conception d'​interface graphique GTK+. Il prend en charge toute la partie de gestion/​génération de l'​interface pour permettre au développeur de se concentrer sur le code « utile ».+----
  
-Glade enregistre les interfaces graphiques en générant des fichiers XMLLa bibliothèque libglade permet de lire ces fichiers dynamiquement (c’est-à-dire à l'​exécution de l'​application)Grâce à libglade, ces fichiers XML peuvent être utilisés par de nombreux langages de programmation tels que C, C++, Java, Perl, Python, C#, PHP (extension PHP-GTK), Pike, Ruby, Haskell, Objective Caml et Scheme.+{{  https://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​5/​59/​Glade_3_logo.svg/​langfr-220px-Glade_3_logo.svg.png?200}} 
 +====== Glade : la ligne de code ouvre les fenêtres ======
  
-La version 2.x permet ​de générer directement le code en C, C++ et Ada 95Cependantcette fonctionnalité a disparu à partir ​de la version 3.x car elle était déconseillée pour différentes raisons. Glade 2 est néanmoins toujours disponible sur le site officiel.+Glade est un outil interactif ​de conception d'​interface graphique GTK+. \\ 
 +Il prend en charge toute la partie de gestion/​génération de l'​interfacepour permettre au développeur ​de se concentrer presque exclusivement sur la partie développement de son application.
  
-[[http://​glade.gnome.org/​docs/​index.html|Documentation officiel]] sur le [[http://​glade.gnome.org/​|site officiel]]. +**Glade** enregistre les interfaces graphiques en générant des fichiers XML\\ **GtkBuilder** permet ​de lire ces fichiers dynamiquemententendez à l'​exécution ​de l'​application.
- +
-<note tip> +
-À partir ​de la version 3.0Glade dépend ​de GTK+ 2.8 et libxml2.</​note>​+
  
 +===== Pré-requis =====
 + 
 +  * Disposer des [[:​sudo|droits d'​administration]].
 +  * Disposer d'une connexion à Internet configurée et activée.
 ===== Installation ===== ===== Installation =====
-==== Glade 3 ==== 
- 
-La dernière version du logiciel dans les dépôts. 
- 
-Cliquez [[apt://​glade-3|ici pour installer]]. 
- 
-ou 
- 
-<​code>​sudo apt-get install glade-3 </​code>​ 
- 
-==== Glade 2 ==== 
- 
- 
- 
-Cliquez [[apt://​glade|ici pour installer]]. 
- 
-ou 
- 
-<​code>​sudo apt-get install glade </​code>​ 
- 
- 
  
 +Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​glade]]**.
 +La version par défaut de Glade ne permet pas d'​ouvrir les fichiers créés sous les versions antérieures il faut donc installer le paquet [[apt>​glade-gtk2]] et le lancer via la commande :<​code>​glade-gtk2</​code>​
 +À partir d'​[[:​xenial|Ubuntu 16.04]], le paquet n'est plus dans les [[:​dépôts]],​ mais vous pouvez télécharger la dernière version sur UbuntuUpdates.org[[https://​www.ubuntuupdates.org/​pm/​glade|les binaires de Glade]].
  
 ===== Exemple de programmation ===== ===== Exemple de programmation =====
  
-Exemple tiré de : http://​planet.ubuntu-fr.org/tag/Glade+Pour gagner du temps, nous allons utiliser directement une boîte ​de dialogue qui comporte déjà 2 parties utiles. ​ \\ A savoir ​: 
 +  * une partie vide puis 
 +  * une autre dédiée spécifiquement aux boutons. 
 +Réalisons donc une interface ressemblant à ceci, avec une arborescence identique à celle proposée sur l’image ci-dessousLe fichier ​Glade est disponible dans l’archive et se nomme ''​PasswordGenerator.glade''​.
  
-Pour ce qui est de la fenêtre que l’on va faire on va gagner du temps et utiliser directement une boîte de dialogue qui comporte déjà 2 parties utiles. A savoir, une partie vide ainsi que une spécialement faite pour y mettre des boutons. Réalisons donc une interface ressemblant à ceci, avec une arborescence identique à celle proposée sur l’image ci-dessous. Le fichier Glade est disponible dans l’archive et se nomme PasswordGenerator.glade. 
  
 +Une fois l’interface réalisée, il faut maintenant l’exploiter avec le code Java et lui faire réaliser les actions que l’on souhaite. \\ Tout d’abord, qu’est-ce que l’on voit sur cette interface GTK+ ? \\ On remarque qu’il y a 4 checkboxes correspondant à l’utilisation (case cochée, par défaut) ou non (case décochée) des types de caractères. \\ On voit aussi une barre pour choisir la taille du mot de passe (valeur par défaut 8). On sait tous qu’un vrai mot de passe se compose d’au moins 8 caractères avec alternance majuscules, minuscules, chiffres et caractères spéciaux. Enfin, il y a 3 boutons, un bouton Quitter (qui veut tout dire), un Actualiser qui va permettre de générer le mot de passe (qui se situera dans la champ de texte) et un bouton Copier pour copier le mot de passe dans le presse-papier. Tous ces boutons sont des boutons “basiques” dont l’icône, le label et le mnemonic sont déjà définis. Nous allons donc voir seulement les actions associées à ses boutons. Pour le reste il vous suffira de voir le code. Ce n’est pas très complexe et il y a des commentaires.
  
-Une fois l’interface réalisé, il faut maintenant l’exploiter avec le code Java et lui faire réaliser les actions que l’on souhaite. Tout d’abord, qu’est-ce que l’on voit sur cette interface GTK+ ? On remarque qu’il y a 4 checkboxs correspondant à l’utilisation (case cochée, par défaut) ou non (case décochée) des types de caractères. On voit aussi une barre pour choisir la taille du mot de passe (valeur par défaut 8). On sait tous qu’un vrai mot de passe se compose d’au moins 8 caractères avec alternance majuscules, minuscules, chiffres et caractères spéciaux. Enfin, il y a 3 boutons, un bouton Quitter (qui veut tout dire), un Actualiser qui va permettre de générer le mot de passe (qui se situera dans la champ de texte) et un bouton Copier pour copier le mot de passe dans le presse-papier. Tous ces boutons sont des boutons “basiques” dont l’icône, le label et le mnemonic sont déjà définis. Nous allons donc voir seulement les actions associées à ses boutons pour le reste il vous suffira de voir le code ce n’est pas très complexe et il y a des commentaires. +Commençons par le bouton Quitter. Ce dernier a pour effet de terminer le programme. ​Voici un exemple de code rattaché à une instance de bouton Exit 
- +
-Commençons par le bouton Quitter. Ce dernier a pour effet de terminer le programme. ​Voilà comment on code ceci+<file C++>
-<code>+
     // Exit button     // Exit button
     Button exitButton = (Button) _glade.getWidget("​exit_button"​);​     Button exitButton = (Button) _glade.getWidget("​exit_button"​);​
Ligne 56: Ligne 43:
     });     });
  
-</code>+</file>
 On récupère l’élément bouton et au clic sur ce bouton on applique l’action Gtk.mainQuit() qui termine la boucle lancée par Gtk.main(). On récupère l’élément bouton et au clic sur ce bouton on applique l’action Gtk.mainQuit() qui termine la boucle lancée par Gtk.main().
  
-Après ceci, occupons-nous du bouton Actualiser qui lancera la génération du mot de passe. Idem on récupère le bouton mais au clic on lui applique une autre méthode que l’on a créé ​auparavant.+Après ceci, occupons-nous du bouton Actualiser qui lancera la génération du mot de passe. Idem on récupère le bouton mais au clic on lui applique une autre méthode que l’on a créée ​auparavant.
  
-<code>+<file C++>
     // Refresh button     // Refresh button
     Button applyButton = (Button) _glade.getWidget("​apply_button"​);​     Button applyButton = (Button) _glade.getWidget("​apply_button"​);​
Ligne 70: Ligne 57:
         }         }
     });     });
-</code>+</file>
  
-La méthode generatePassword() va elle vraiment se charger de récupérer un mot de passe et d’actualiser le champ de texte de l’interface. +C'​est ​La méthode generatePassword() ​qui va vraiment se charger de récupérer un mot de passe et d’actualiser le champ de texte de l’interface. 
-<code>+<file C++>
     private void generatePassword() {     private void generatePassword() {
         boolean[] checks = { _digitCheck.getActive(),​ _upperCheck.getActive(),​         boolean[] checks = { _digitCheck.getActive(),​ _upperCheck.getActive(),​
Ligne 86: Ligne 73:
         }         }
     }     }
-</code>+</file>
 On récupère la longueur du mot de passe. Et là un test, si on a décoché toutes les cases, on signale une erreur à l’utilisateur via une fenêtre spéciale appelée par la méthode errorDialog(String title, String text). On récupère la longueur du mot de passe. Et là un test, si on a décoché toutes les cases, on signale une erreur à l’utilisateur via une fenêtre spéciale appelée par la méthode errorDialog(String title, String text).
  
-Pour finir, on définit l’action du bouton Copier. On va bien entendu copier le mot de passe dans le presse-papier dans le but de le coller plus tard bien entendu+Pour finir, on définit l’action du bouton Copier. On va bien entendu copier le mot de passe dans le presse-papier dans le but de le coller plus tard. 
-<code>+<file C++>
     // Copy button     // Copy button
     Button copyButton = (Button) _glade.getWidget("​copy_button"​);​     Button copyButton = (Button) _glade.getWidget("​copy_button"​);​
Ligne 99: Ligne 86:
         }         }
     });     });
-</code+</file
-C’est la méthode copyToClipboard(String text) qui va copier le contenu du champ texte dans le presse-papier si bien entendu l’environnement le supporte ​mais ça ne devrait pas poser de problème. Voici le contenu de cette méthode. +C’est la méthode copyToClipboard(String text) qui va copier le contenu du champ texte dans le presse-papier si bien entendu l’environnement le supporte. Mais ça ne devrait pas poser de problème. Voici le contenu de cette méthode. 
-<code>    private void copyToClipboard(String password) {+<file C++>    private void copyToClipboard(String password) {
         try {         try {
             StringSelection selection = new StringSelection(             StringSelection selection = new StringSelection(
Ligne 111: Ligne 98:
         }         }
     }     }
-</code>+</file>
  
 N’oubliez pas surtout de regarder tous les autres fichiers pour comprendre le code et tous les appels de méthodes. Et normalement,​ après compilation (via le script Ant), Il ne reste qu’à dézipper le fichier .zip généré, donner les droits d’exécution au script shell et le lancer (on peut aussi utiliser le Run de Eclipse). Après tout ceci, on obtient notre joli générateur de mot de passe sans aucun problème. N’oubliez pas surtout de regarder tous les autres fichiers pour comprendre le code et tous les appels de méthodes. Et normalement,​ après compilation (via le script Ant), Il ne reste qu’à dézipper le fichier .zip généré, donner les droits d’exécution au script shell et le lancer (on peut aussi utiliser le Run de Eclipse). Après tout ceci, on obtient notre joli générateur de mot de passe sans aucun problème.
 Si vous avez des questions, besoin de plus d’explication,​ n’hésitez pas à demander. Si vous avez des questions, besoin de plus d’explication,​ n’hésitez pas à demander.
  
-===== Tutoriaux ​===== +===== Voir aussi =====
-==== Francais ==== +
- +
-  * http://​www.gtk-fr.org/​wakka.php?​wiki=LibGlade +
-  * http://​g4l4xi3.comuf.com/​tuto_gtk_glade2.php +
-  * http://​daniel.coquette.free.fr/​dotclear/​index.php/​post/​2006/​12/​11/​Creer-des-interfaces-graphique-avec-PyGTK-et-Glade +
-  * http://​daniel.coquette.free.fr/​dotclear/​index.php/​post/​2006/​12/​18/​Construire-une-application-avec-PyGTK-et-Glade +
- +
  
-==== Anglais ==== 
  
-  * http://www.micahcarrick.com/12-24-2007/gtk-glade-tutorial-part-1.html +  * [[http://daniel.coquette.free.fr/​dotclear/​index.php/​post/​2006/12/11/Creer-des-interfaces-graphique-avec-PyGTK-et-Glade|Créer des interfaces avec Pygtk]], 
-  * http://www.kplug.org/glade_tutorial/glade2_tutorial/glade2_introduction.html +  * [[http://daniel.coquette.free.fr/​dotclear/​index.php/​post/​2006/​12/​18/​Construire-une-application-avec-PyGTK-et-Glade|Construire une application avec-PyGTK et Glade]], 
-  * http://www.haskell.org/gtk2hs/docs/tutorial/glade/+  * [[https://​python-gtk-3-tutorial.readthedocs.io/en/latest/builder.html|Créer une interface avec Glade et l'​utiliser en python]] (en) 
 +  * [[https://openclassrooms.com/​courses/​pygtk/​glade|Glade sur openclassrooms]],​ 
 +  * [[https://​wiki.gnome.org/Apps/Glade/​Tutorials|Documentation officielle]] sur le [[http://glade.gnome.org/|site officiel]] (en).
  
  • glade.1247085367.txt.gz
  • Dernière modification: Le 08/07/2009, 22:36
  • par 213.95.41.13