2

我有一个 Gtk::Box 容器(主控制器),其中有一个 Gtk::Grid(主菜单)。我在 maincontroller.cpp 中添加了一个信号,如下所示:

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

当我在主菜单中按下一个按钮时,我调用了 hide() 函数,什么工作正常,之后我什么都看不到,但它不会发出信号,只有当我关闭窗口时。为什么会这样,我该如何解决?

提前感谢您的回答!

4

1 回答 1

0

您可能会考虑改为绑定到signal_unmap。我认为 signal_hide 只有在小部件被隐藏时才会被调用,而不是在它的父母之一被隐藏时被调用。如果实际上在 mainmenu 的子项而不是 mainmenu 本身上调用 hide ,则不会触发这些。在这种情况下,它看起来好像主菜单已被隐藏,但实际上仍然是可见的(并且映射和实现)。

于 2016-04-01T15:01:13.117 回答