我已經使用Glade構建了GTK GUI,這意味着我有一個* .glade文件,可以與我的應用程序一起使用。我已經能夠獲得小部件來與它們進行交互,但我對於如何將信號處理程序連接到Menu條目是無能爲力的。gtkmm/glade - 將信號處理程序連接到MenuShell
我想連接的信號是單擊菜單項時發出的信號。就像你在網絡瀏覽器中會做的一樣,你去到文件,然後點擊一個條目。
該事件的名稱是什麼,以及要調用的gtkmm函數是什麼? 我很困惑,我應該嘗試與哪些元素進行交互,是GtkMenu,GtkMenuShell ...?更好的是,我可以從Glade的界面做到嗎?
起初我以爲事件是activate-current
所以我嘗試使用邏輯上連接到它的方法,就像按鈕上的clicked
事件一樣。
這裏是不工作的代碼,因爲該方法不存在:
Gtk::MenuShell* help_menu; p_builder->get_widget("helpMenu", help_menu); help_menu->signal_activate_current().connect(sigc::ptr_fun(&on_help_menu_activate_current));
src/GUI.cpp:11:16: error: ‘class Gtk::MenuShell’ has no member named ‘signal_activate_current’ help_menu->signal_activate_current().connect(sigc::ptr_fun(&on_help_menu_activate_current));