Les boîtes de message
Gtk possède des classes décrivant les fenêtres standard (Gtk::Window) ou les boîtes de dialogue (Gtk::Dialog), qui permettent de créer tout ce que vous voulez. Mais si vous avez juste besoin d’afficher un message à l’utilisateur, il existe un moyen plus rapide et plus simple que de créer votre propre fenêtre. Il s’agit du widget Gtk::MessageDialog.
Ce widget représente une fenêtre de dialogue avec un message, une icône, et des boutons standards. Il existe quatre type des dialogues prédéfinis : information, avertissement, question et erreur. Il existe aussi six types de boutons prédéfinis : aucun, ok, fermer, annuler, Oui/Non et Ok/Annuler. Enfin, vous pouvez choisir que la fenêtre soit modale (c’est à dire qu’elle bloque l’application, et que l’utilisateur doit répondre au message avant de continuer à travailler) ou non. Voyons un exemple :
vb = Gtk::VBox.new(true, 6)
b = Gtk::Button.new('Ouvrir le dialogue')
b.signal_connect('clicked') {
d = Gtk::MessageDialog.new(window, Gtk::Dialog::DESTROY_WITH_PARENT,
Gtk::MessageDialog::INFO,
Gtk::MessageDialog::BUTTONS_CLOSE,
"Bonjour tout le monde")
d.run
d.destroy
}
vb.pack_start(b)

Si on utilise la méthode run du dialogue, il sera modal, et se terminera lorsque l’utilisateur cliquera sur un bouton. La méthode destroy est ensuite appelée pour fermer la fenêtre. Si vous désirez procéder autrement, par exemple si vous ne voulez pas une fenêtre modale, alors vous devrez attribuer un bloc au signal response. Référez-vous à la documentation de la super-classe Gtk::Dialog concernant ce signal, et la manière de savoir quel bouton a été cliqué. Nous détaillerons cela ultérieurement.
Les types de message prédéfinis dont nous avons parlé sont INFO, WARNING, QUESTION et ERROR. Pour les boutons, vous avez le choix entre NONE, OK, CLOSE, CANCEL, YES_NO et OK_CANCEL. Enfin, le deuxième paramètre du constructeur contient des attributs spécifiques à la classe Dialog, que nous ne détaillerons pas car ils ne sont pas très utiles à ce stade.
Sommaire
Précédent : IHM-GTK : Entrée de données Suivant : IHM-GTK : Exemple concret : un convertisseur de devises


