【发布时间】:2017-12-21 14:14:13
【问题描述】:
我已经使用 Glade 构建了一个 GTK GUI,这意味着我有一个可以与我的应用程序一起使用的 *.glade 文件。我已经能够让小部件与它们进行交互,但我不知道如何将信号处理程序连接到菜单条目。
我要连接的信号是单击菜单项时发出的信号。就像您在网络浏览器中所做的那样,您转到文件,然后单击一个条目。
该事件的名称是什么,调用的 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: 错误:‘class Gtk::MenuShell’没有名为‘signal_activate_current’的成员 help_menu->signal_activate_current().connect(sigc::ptr_fun(&on_help_menu_activate_current));
【问题讨论】: