Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| glade [Le 04/01/2010, 20:52] – 213.95.41.13 | glade [Le 08/01/2025, 16:25] (Version actuelle) – [Voir aussi] suppr liens morts bcag2 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Glade ====== | + | {{tag> |
| - | Glade est un outil interactif de conception d' | + | ---- |
| - | Glade enregistre les interfaces graphiques en générant des fichiers XML. La bibliothèque libglade permet de lire ces fichiers dynamiquement (c’est-à-dire à l' | + | {{ https:// |
| + | ====== Glade : la ligne de code ouvre les fenêtres ====== | ||
| - | La version 2.x permet | + | Glade est un outil interactif |
| + | Il prend en charge toute la partie de gestion/ | ||
| - | [[http:// | + | **Glade** enregistre |
| - | + | ||
| - | <note tip> | + | |
| - | À partir de la version 3.0, Glade dépend de GTK+ 2.8 et libxml2. | + | |
| - | + | ||
| - | Il faut savoir que pour les paquets disponibles sous Hardy (et vraisemblablement dans les distributions plus récentes), il n'est pas encore possible d' | + | |
| + | ===== Pré-requis ===== | ||
| + | |||
| + | * Disposer des [[: | ||
| + | * Disposer d'une connexion à Internet configurée et activée. | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | [[: | + | Il suffit d'[[: |
| - | + | La version par défaut de Glade ne permet pas d' | |
| - | <note tip>Le paquet | + | À partir d' |
| - | </ | + | |
| ===== Exemple de programmation ===== | ===== Exemple de programmation ===== | ||
| - | Exemple tiré de : http:// | + | Pour gagner du temps, nous allons utiliser directement une boîte |
| + | * 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-dessous. Le fichier | ||
| - | 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. |
| - | + | . | |
| - | Commençons par le bouton Quitter. Ce dernier a pour effet de terminer le programme. | + | <file C++> |
| - | <code> | + | |
| // Exit button | // Exit button | ||
| Button exitButton = (Button) _glade.getWidget(" | Button exitButton = (Button) _glade.getWidget(" | ||
| Ligne 42: | 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éé | + | 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 |
| - | <code> | + | <file C++> |
| // Refresh button | // Refresh button | ||
| Button applyButton = (Button) _glade.getWidget(" | Button applyButton = (Button) _glade.getWidget(" | ||
| Ligne 56: | 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' |
| - | <code> | + | <file C++> |
| private void generatePassword() { | private void generatePassword() { | ||
| boolean[] checks = { _digitCheck.getActive(), | boolean[] checks = { _digitCheck.getActive(), | ||
| Ligne 72: | 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(" | Button copyButton = (Button) _glade.getWidget(" | ||
| Ligne 85: | 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 | + | 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 97: | 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, | N’oubliez pas surtout de regarder tous les autres fichiers pour comprendre le code et tous les appels de méthodes. Et normalement, | ||
| Si vous avez des questions, besoin de plus d’explication, | Si vous avez des questions, besoin de plus d’explication, | ||
| - | ===== Tutoriaux | + | ===== Voir aussi ===== |
| - | ==== Francais ==== | + | |
| - | + | ||
| - | * http:// | + | |
| - | * http:// | + | |
| - | * http:// | + | |
| - | * http:// | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Anglais | + | |
| - | * http://www.micahcarrick.com/ | + | * [[https://python-gtk-3-tutorial.readthedocs.io/ |
| - | * http://www.kplug.org/glade_tutorial/glade2_tutorial/glade2_introduction.html | + | * [[https://wiki.gnome.org/Apps/Glade/Tutorials|Documentation officielle]] sur le [[http://glade.gnome.org/|site officiel]] (en). |
| - | * http://www.haskell.org/gtk2hs/ | + | |
