信号

像大多数 GUI 工具集一样,gtkmm事件驱动的。当一个事件发生时,比如说一个鼠标按键被按下,那么所点击的组件就会发出一个合适的信号。每种组件都可以发出一套不同的信号。为了使这个按钮点击产生一个动作,我们可以设置一个信号处理函数(signal handler)来捕捉这个“clicked”信号。

gtkmm 使用 libsigc++ 来实现信号操作。下面这个例子演示怎样把 Gtk::Button “clicked” 信号连接到命名为“on_button_clicked”的信号处理函数上:

m_button1.signal_clicked().connect( sigc::mem_fun(*this,
  &HelloWorld::on_button_clicked) );

要得到更多关于信号的信息,请参考附录

要想知道如何实现你自己的信号,而不仅仅是连接到现有的 gtkmm 信号,请参考 附录