2016-07-14 7 views
0

Im folgenden Code:Wie Signal_add Feuer auf Gtk :: Layout :: setzen?

Gtk::Layout l; 
l.signal_add().connect([](Gtk::Widget* w) -> void { 
    std::cout << "Added " << w->get_name() << std::endl; 
}); 
Gtk::Widget* w = // any widget 
l.put(*w, 10, 10); 

nichts angezeigt wird. Aus irgendeinem Grund geht das Hinzufügen über Layout um dieses Signal alle zusammen. Gibt es ein anderes Signal, das angeschlossen werden kann oder um sicherzustellen, dass das Signal Add ausgelöst wird?

Antwort

1

signal_add wird nur ausgelöst, wenn Sie Gtk :: Layout :: add (intern - gtk_container_add) aufrufen. Ich habe gerade die Quellen eingecheckt und es scheint, dass gtk_layout_put kein Signal aussendet. Sie können jedoch Ihre eigene Klasse erstellen, die von der Gtk :: Layout-Klasse erbt, und die put() -Methode überschreiben, sodass sie ein Signal ausgibt.