2016-07-14 4 views
0

В следующем коде: не получает отображаетсяКак сделать огонь signal_add в Gtk :: Layout :: put?

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); 

ничего. По какой-то причине добавление через Layout обходит этот сигнал все вместе. Есть ли другой сигнал, который может быть подключен к или чтобы обеспечить добавление сигнала?

ответ

1

signal_add запускается только при вызове Gtk :: Layout :: add (внутренне - gtk_container_add). Я только что проверил в источниках, и кажется, что gtk_layout_put не излучает никакого сигнала. Однако вы можете создать свой собственный класс, который наследуется от класса Gtk :: Layout и переопределить метод put(), чтобы он выдавал сигнал.