如何在 Gtk::Layout::p ut 上使signal_add火

How to make signal_add fire on Gtk::Layout::put?

本文关键字:signal 上使 add ut Gtk Layout      更新时间:2023-10-16

在下面的代码中:

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

不显示任何内容。出于某种原因,通过布局添加会一起绕过该信号。是否有不同的信号可以连接到或确保信号添加确实被触发?

只有当你调用 Gtk::Layout::add(内部 - gtk_container_add)时,signal_add才会被触发。我刚刚检查了消息来源,似乎gtk_layout_put没有发出任何信号。但是,您可以创建自己的类,该类继承自 Gtk::Layout 类,并覆盖 put() 方法,以便它会发出信号。