У меня есть контейнер Gtk :: Box (maincontroller) и внутри него есть Gtk :: Grid (mainmenu). Я добавил сигнал в maincontroller.cpp так:
mainmenu->signal_hide().connect(
sigc::mem_fun(this, &MainController::Elmozdulas)
);
Когда я нажимаю кнопку в главном меню, я вызываю функцию hide (), которая работает правильно, я ничего не вижу после этого, но она не выдает сигнал, только если я закрываю окно. Почему это и как я могу это исправить?
Спасибо за ваши ответы заранее!
Вы можете рассмотреть возможность привязки к signal_unmap вместо. Я думаю, что signal_hide вызывается, только если виджет скрыт, а не если один из его родителей. Ни один из них не сработает, если действительно скрыть вызывается потомок mainmenu, а не само mainmenu. В этом случае это выглядело бы так, как будто главное меню было скрыто, но на самом деле все еще было бы видно (и отображено, и реализовано).