动作(Actions)
首先创建Gio::SimpleAction并使用Gio::ActionMap::add_action()方法将其加入Gio::SimpleActionGroup中(Gio::ActionMap是Gio::SimpleActionGroup的基类。)。然后将动作组使用Gtk::Widget::insert_action_group()加入到你的窗口中。
add_action()的参数用于指定动作名,该名称由菜单项和工具栏按钮使用。你还可以在调用add_action()时指定信号处理函数。在菜单项或工具栏按钮被激活的时候此信号处理函数被调用。
例如:
m_refActionGroup = Gio::SimpleActionGroup::create(); m_refActionGroup->add_action("new", sigc::mem_fun(*this, &ExampleWindow::on_action_file_new)); m_refActionGroup->add_action("open", sigc::mem_fun(*this, &ExampleWindow::on_action_file_open)); m_refActionGroup->add_action("quit", sigc::mem_fun(*this, &ExampleWindow::on_action_file_quit)); insert_action_group("example", m_refActionGroup);
如果你使用Gtk::ApplicationWindow,则你不需要自己创建动作组。因为Gio::ActionGroup和Gio::ActionMap是Gtk::ApplicationWindow的基类。