Botón
- 5.1.1. Constructores
- 5.1.2. Ejemplo
- 5.1.3. Señales
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);
Gtk::Button también es un contenedor, por lo que puede poner otro widget, como un Gtk::Image dentro de él.
5.1.2. Ejemplo
Este ejemplo crea un botón con una imagen y una etiqueta.
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.
