Botão
- 5.1.1 Construtores
- 5.1.2 Exemplo
- 5.1.3 Sinais
5.1.1 Construtores
Existem duas formas de criar um Botão. Você pode especificar um texto de rótulo no construtor Gtk::Button ou defini-lo mais tarde com set_label().
Para definir uma tecla aceleradora para navegação por teclado, coloque uma sublinha antes de um dos caracteres do rótulo e especifique true para o parâmetro opcional mnemonic. Por exemplo:
Gtk::Button* pButton = new Gtk::Button("_Algo", true);Sempre que possível, você deveria usar itens predefinidos, para garantir consistência com outros aplicativos e para melhorar a aparência dos seus usando ícones. Por exemplo,
Gtk::Button* pButton = new Gtk::Button(Gtk::Stock::OK);
Gtk::Button é também um contêiner, então você pode colocar qualquer outro widget nele, como um Gtk::Image.
5.1.2 Exemplo
Este exemplo cria um botão com uma figura e um rótulo.
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;
}
5.1.3 Sinais
O widget Gtk::Button tem os seguintes sinais, mas a maioria das vezes você só precisará manipular o sinal clicked:
- pressed
-
Emitido quando o botão é pressionado.
- released
-
Emitido quando o botão é solto.
- clicked
-
Emitido quando o botão é pressionado e depois liberado.
- enter
-
Emitido quando o ponteiro do mouse se move sobre a janela do botão.
- leave
-
Emitido quando o ponteiro do mouse sai da janela do botão.
