Я должен был убедиться, что моя функция была вызвана до значения по умолчанию.Я предполагаю, что происходит, если обработчик сигнала по умолчанию возвращает true и, следовательно, сигнал не распространяется?
/** Connects a signal to a signal handler.
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
*
* @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
* @param after Whether this signal handler should be called before or after the default signal handler.
*/
sigc::connection connect(const SlotType& slot, bool after = true)
{ return sigc::connection(connect_(slot, after)); }
Вот правильный код:
label2.signal_activate_link().connect( sigc::ptr_fun( test ), false );