动作(Actions)

首先创建Gio::SimpleAction并使用Gio::ActionMap::add_action()方法将其加入Gio::SimpleActionGroup中(Gio::ActionMapGio::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::ActionGroupGio::ActionMapGtk::ApplicationWindow的基类。