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);
Stock items have been recommended for use in buttons. From gtkmm-3.10 they are deprecated. They should not be used in newly-written code. However, the documentation of namespace Gtk::Stock shows recommended labels and named icons to show in buttons.
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: 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; }
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); }
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.