Bouton
- V.I.I. Constructeurs
- V.I.II. Exemple
- V.I.III. Signaux
V.I.I. Constructeurs
Il y a deux façons de créer un bouton. Vous pouvez indiquer la chaîne étiquette dans le constructeur de Gtk::Button ou bien la définir plus tard avec set_label().
Pour définir une touche d'accès direct de navigation au clavier, placez un caractère souligné avant l'un des caractères de l'étiquette et définissez à true le paramètre optionnel mnemonic (mnémonique). Par exemple :
Gtk::Button* pButton = new Gtk::Button("_Quelquechose", true);Stock items have been recommended for use in buttons. From gtkmm-3.10 they are deprecated. They should not be used in newly-written code. However, the documentation of namespace Gtk::Stock shows recommended labels and named icons to show in buttons.
Gtk::Button est aussi un conteneur ; vous pouvez donc y mettre n'importe quel autre élément graphique à l'intérieur, comme une Gtk::Image.
V.I.II. Exemple
Cet exemple crée un bouton avec image et étiquette.
File: buttons.h (For use with gtkmm 3, not gtkmm 2)
#ifndef GTKMM_EXAMPLE_BUTTONS_H
#define GTKMM_EXAMPLE_BUTTONS_H
#include <gtkmm/window.h>
#include <gtkmm/button.h>
class Buttons : public Gtk::Window
{
public:
Buttons();
virtual ~Buttons();
protected:
//Signal handlers:
void on_button_clicked();
//Child widgets:
Gtk::Button m_button;
};
#endif //GTKMM_EXAMPLE_BUTTONS_H
File: buttons.cc (For use with gtkmm 3, not gtkmm 2)
#include "buttons.h"
#include <iostream>
Buttons::Buttons()
{
m_button.add_pixlabel("info.xpm", "cool button");
set_title("Pixmap'd buttons!");
set_border_width(10);
m_button.signal_clicked().connect( sigc::mem_fun(*this,
&Buttons::on_button_clicked) );
add(m_button);
show_all_children();
}
Buttons::~Buttons()
{
}
void Buttons::on_button_clicked()
{
std::cout << "The Button was clicked." << std::endl;
}
File: main.cc (For use with gtkmm 3, not gtkmm 2)
#include "buttons.h"
#include <gtkmm/application.h>
int main(int argc, char *argv[])
{
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "org.gtkmm.example");
Buttons buttons;
//Shows the window and returns when it is closed.
return app->run(buttons);
}
V.I.III. Signaux
L'élément graphique Gtk::Button émet les signaux suivants, mais la plupart du temps vous ne gérerez que le signal clicked (cliqué) :
- pressed
-
Émis quand le bouton est enfoncé.
- released
-
Émis quand le bouton est relâché.
- clicked
-
Émis quand le bouton est enfoncé et relâché.
- enter
-
Émis quand le pointeur de souris entre dans la fenêtre du bouton.
- leave
-
Émis lorsque le pointeur de souris sort de la fenêtre du bouton.
