Sinais

O gtkmm, como a maioria dos kits de ferramentas para GUI, é orientado a eventos. Quando um evento ocorre, como o pressionar de botão do mouse, o sinal apropriado será emitido pelo widget que foi pressionado. Cada widget tem um conjunto de sinais diferente que pode emitir. Para fazer um clique de botão resultar em uma ação, nós configuramos um manipulador de sinais para capturar o sinal "clicked" do botão.

O gtkmm usa a biblioteca libsigc++ para implementar sinais. Aqui está uma linha de código de exemplo que conecta um sinal "clicked" de um Gtk::Button com um manipulador de eventos chamado "ao_clicar_botao":

m_botao1.signal_clicked().connect( sigc::mem_fun(*this,
  &OlaMundo::ao_clicar_botao) );

Para informações mais detalhadas sobre sinais, veja o apêndice.

Para informações sobre como implementar seus próprios sinais em vez de apenas conectar os sinais gtkmm existentes, veja o apêndice.