Bouton

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);

Chaque fois que cela est possible, vous devez utiliser les éléments du catalogue pour être cohérent avec les autres applications et en améliorer l'aspect en utilisant des icônes. Par exemple,

Gtk::Button* pButton = new Gtk::Button(Gtk::Stock::OK);
utilise un texte normalisé, dans toutes les langues, avec un raccourci clavier et une icône standard.

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.

Référence

V.I.II. Exemple

Cet exemple crée un bouton avec image et étiquette.

Figure V.1 Exemple de bouton

Code source

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: main.cc (For use with gtkmm 3, not gtkmm 2)

#include "buttons.h"
#include <gtkmm/main.h>

int main(int argc, char *argv[])
{
  Gtk::Main kit(argc, argv);

  Buttons buttons;
  //Shows the window and returns when it is closed.
  Gtk::Main::run(buttons);

  return 0;
}

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;
}

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 (enfoncé)

Émis quand le bouton est enfoncé.

released (relâché)

Émis quand le bouton est relâché.

clicked (cliqué)

Émis quand le bouton est enfoncé et relâché.

enter (entré)

Émis quand le pointeur de souris entre dans la fenêtre du bouton.

leave (quitté)

Émis lorsque le pointeur de souris sort de la fenêtre du bouton.