您好我正在尝试使用gtkmm编写程序并遇到一些问题,这是在gnome网站上的在线教程之后。 虽然我的程序编译并执行菜单栏没有显示,但快捷键也不起作用。
但我在终端Gtk-WARNING **: File: missing action File
任何指针都会有所帮助。 谢谢
这是创建菜单的代码
mActionGroup = Gtk::ActionGroup::create();
mActionGroup->add(Gtk::Action::create("File", "_File"));
mActionGroup->add(
Gtk::Action::create( "Open", Gtk::Stock::OPEN, "_Open", "Open a file" ),
Gtk::AccelKey( "<control>o" ),
sigc::mem_fun( *this, &myWindow::onFileOpen ) );
std::string menuInfo =
std::string("<ui>")+
" <menubar name='MenuBar'>"+
" <menu action='File'>"+
" <menuitem action='Open'/>"+
" </menu>"+
" </menubar>"+
"</ui>";
mUIManager = Gtk::UIManager::create();
add_accel_group(mUIManager->get_accel_group());
try
{
mUIManager->add_ui_from_string( menuInfo );
}
catch( const Glib::Error &ex )
{
ERROR( "Could not create menu" << ex.what() )
}
Gtk::Widget *pMenu = mUIManager->get_widget( "/MenuBar" );
mBox.pack_start( *pMenu, Gtk::PACK_SHRINK );
show_all_children();
这是安装了libgtkmm-3.0-dev:amd64
的Gtkmm软件包,我使用pkg-config --libs gtkmm-3.0
进行编译,这给了这些库
-lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lgtk-3 -lglibmm-2.4
-lcairomm-1.0 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject
-lpango-1.0 -lcairo -lsigc-2.0 -lgobject-2.0 -lglib-2.0
编辑:
不确定如何检查我的gtkmm版本 但我搜索了包名,并将其标记为已被取代[https://launchpad.net/ubuntu/saucy/amd64/libgtkmm-3.0-dev/3.6.0-0ubuntu1]所以我认为版本是3.6