使用Gtkmm创建信号

时间:2016-11-26 19:12:23

标签: c++ c++11 c++14 gtkmm gtkmm3

我正在使用带有C ++的gtkmm库,我正在尝试创建一个允许更改当前选项卡的信号,但它不起作用。

实际上我认为问题来自这一行:

menuit->signal_activate().connect([&bo]() {bo->next_page();}); 

其中:

menuit = Gtk::MenuItem
bo = Gtk::Notebook

代码编译得很好,但在执行时我得到这一行:

Segmentation fault
(program exited with code: 139)

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

menuit->signal_activate().connect([&bo]() {bo->next_page();});

您通过引用捕获bo,因此在执行信号时,我猜捕获变成了悬空参考。

尝试复制(毕竟,bo是一个指针):

menuit->signal_activate().connect([bo]() {bo->next_page();});