Botón

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

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

The Gtk::Button widget has the clicked signal which is emitted when the button is pressed and released.

Reference

6.1.1. Ejemplo

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

Figura 6-1ejemplo de botones

Source Code

File: buttons.h (For use with gtkmm 4)

#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 4)

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

int main(int argc, char *argv[])
{
  auto app = Gtk::Application::create("org.gtkmm.example");

  Buttons buttons;

  //Shows the window and returns when it is closed.
  return app->run(buttons, argc, argv);
}

File: buttons.cc (For use with gtkmm 4)

#include "buttons.h"
#include <iostream>

Buttons::Buttons()
{
  m_button.add_pixlabel("info.xpm", "cool button");

  set_title("Pixmap'd buttons!");

  m_button.signal_clicked().connect( sigc::mem_fun(*this,
              &Buttons::on_button_clicked) );

  m_button.set_margin(10);
  add(m_button);
}

Buttons::~Buttons()
{
}

void Buttons::on_button_clicked()
{
  std::cout << "The Button was clicked." << std::endl;
}