Botón

5.1.1. Constructores

Hay dos maneras de crear un botón. Puede especificar una etiqueta en el constructor de Gtk::Button, o establecerla más tarde con set_label().

Para definir un atajo para la navegación por teclado, ponga un guión bajo antes de uno de los caracteres y especifique true para el parámetro opcional mnemonic. Por ejemplo:

Gtk::Button* pButton = new Gtk::Button("_Something", true);

Siempre que sea posible, debe usar elementos del almacén («stock»), para asegurar la consistencia con otras aplicaciones, y mejorar la apariencia de sus aplicaciones mediante los iconos. Por ejemplo,

Gtk::Button* pButton = new Gtk::Button(Gtk::Stock::OK);
. Esto usará texto estándar, en todos los lenguajes, con atajos estándar, con un icono estándar.

Gtk::Button también es un contenedor, por lo que puede poner otro widget, como un Gtk::Image dentro de él.

Referencia

5.1.2. Ejemplo

Este ejemplo crea un botón con una imagen y una etiqueta.

Figura 5-1ejemplo de botones

Código fuente

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

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

5.1.3. Señales

El widget Gtk::Button tiene las siguientes señales, pero la mayor parte del tiempo sólo manejara la señal clicked:

pressed

Emitida cuando se pulsa el botón.

released

Emitida cuando se suelta el botón.

clicked

Emitida cuando el botón se pulsa y se suelta.

enter

Emitida cuando se mueve el puntero del ratón sobre el botón de la ventana.

leave

Emitida cuando el puntero del ratón sale del botón de la ventana.