GTKmm为什么signal_hide()信号没有正确发射?

时间:2014-09-18 21:19:40

标签: c++ gtkmm emit

我有一个Gtk :: Box容器(maincontroller),里面有一个Gtk :: Grid(mainmenu)。我在maincontroller.cpp中添加了一个信号:

mainmenu->signal_hide().connect(
        sigc::mem_fun(this, &MainController::Elmozdulas)
        );

当我按下主菜单中的一个按钮时,我调用了hide()函数,它正常工作,之后我什么也看不见,但它不会发出信号,只有我关闭窗户。为什么这样,我怎么能解决它?

提前感谢您的回答!

1 个答案:

答案 0 :(得分:0)

您可以考虑绑定到signal_unmap。我认为只有在隐藏窗口小部件时才会调用signal_hide,而不是如果其中一个父窗口被隐藏。如果实际上在mainmenu的子节点上调用hide而不是mainmenu本身,则不会触发这些中的任何一个。在这种情况下,它看起来像mainmenu已被隐藏,但实际上仍然可见(并映射和实现)。