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 12/06/2016, 15:07] – Mise en forme, suppression de liens brisés et correction de problèmes divers... Baptclub | glade [Le 08/01/2025, 16:25] (Version actuelle) – [Voir aussi] suppr liens morts bcag2 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Lucid Maverick Natty Oneiric | + | {{tag>Xenial |
| ---- | ---- | ||
| - | ====== Glade ====== | + | {{ https:// |
| + | ====== Glade : la ligne de code ouvre les fenêtres | ||
| - | Glade est un outil interactif de conception d' | + | Glade est un outil interactif de conception d' |
| + | Il prend en charge toute la partie de gestion/ | ||
| - | Glade enregistre les interfaces graphiques en générant des fichiers XML. La bibliothèque libglade | + | **Glade** enregistre les interfaces graphiques en générant des fichiers XML. \\ **GtkBuilder** |
| - | + | ||
| - | <note tip>Sous Ubuntu 11.10, la version par défaut de Glade (glade 3.10) ne permet pas d' | + | |
| - | Pour les anciennes versions, il faut installer glade-gtk2 et le lancer via la commande :< | + | |
| + | ===== Pré-requis ===== | ||
| + | |||
| + | * Disposer des [[: | ||
| + | * Disposer d'une connexion à Internet configurée et activée. | ||
| ===== Installation ===== | ===== Installation ===== | ||
| Il suffit d' | Il suffit d' | ||
| + | La version par défaut de Glade ne permet pas d' | ||
| + | À partir d' | ||
| ===== Exemple de programmation ===== | ===== Exemple de programmation ===== | ||
| - | Exemple tiré de : < | + | 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é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. | + | 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 36: | 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éée 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(" | Button applyButton = (Button) _glade.getWidget(" | ||
| Ligne 50: | Ligne 57: | ||
| } | } | ||
| }); | }); | ||
| - | </code> | + | </file> |
| 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. | 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(), | boolean[] checks = { _digitCheck.getActive(), | ||
| Ligne 66: | 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. | 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 79: | 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 91: | 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:// | + | |
| - | * https:// | + | |
| + | * [[https:// | ||
| + | * [[https:// | ||
| - | ==== Anglais ==== | ||
| - | * [[https:// | ||
| - | * http:// | ||
