如何使用菜单按钮(Gtkmm)

如何使用菜单按钮(Gtkmm),gtk,gtkmm,Gtk,Gtkmm,我正在尝试使用菜单按钮,但它不起作用 #include <gtkmm.h> int main( int argc, char **argv) { Glib::RefPtr< Gtk::Application > app = Gtk::Application::create( "App1" ); Gtk::Window window; Gtk::MenuButton menuButton; menuButton.set_label("menu

我正在尝试使用
菜单按钮
,但它不起作用

#include <gtkmm.h>

int main( int argc, char **argv)
{
   Glib::RefPtr< Gtk::Application >  app = Gtk::Application::create( "App1" );
   Gtk::Window window;

   Gtk::MenuButton menuButton;
   menuButton.set_label("menu button");
   Gtk::Menu menu;
   Gtk::Label label1("label1");
   Gtk::Label label2("label2");
   Gtk::MenuItem item1(label1);
   Gtk::MenuItem item2(label2);
   menu.append(item1);
   menu.append(item2);
   menuButton.set_popup(menu);

   window.add(menuButton);
   window.show_all();
   return app->run(window);
}
#包括
int main(int argc,字符**argv)
{
Glib::RefPtrapp=Gtk::Application::create(“App1”);
Gtk::窗口窗口;
Gtk::菜单按钮菜单按钮;
菜单按钮。设置标签(“菜单按钮”);
Gtk::菜单;
Gtk::标签label1(“label1”);
Gtk::标签label2(“label2”);
Gtk::菜单项1(标签1);
Gtk::菜单项2(标签2);
菜单。附加(第1项);
菜单。附加(第2项);
菜单按钮。设置弹出窗口(菜单);
添加(菜单按钮);
window.show_all();
返回应用程序->运行(窗口);
}
它不起作用了。调用
set\u menu()
而不是
set\u popup()
也不起作用。 结果是:
好吧,这是正确的!您只需要调用
菜单。show_all()

#包括
int main(int argc,字符**argv)
{
Glib::RefPtrapp=Gtk::Application::create(“App1”);
Gtk::窗口窗口;
Gtk::菜单按钮菜单按钮;
菜单按钮。设置标签(“菜单按钮”);
Gtk::菜单;
Gtk::标签label1(“label1”);
Gtk::标签label2(“label2”);
Gtk::菜单项1(标签1);
Gtk::菜单项2(标签2);
菜单。附加(第1项);
菜单。附加(第2项);
menu.show_all();
菜单按钮。设置弹出窗口(菜单);
添加(菜单按钮);
window.show_all();
返回应用程序->运行(窗口);
}
#include <gtkmm.h>

int main( int argc, char **argv)
{
   Glib::RefPtr< Gtk::Application >  app = Gtk::Application::create( "App1" );
   Gtk::Window window;

   Gtk::MenuButton menuButton;
   menuButton.set_label("menu button");
   Gtk::Menu menu;
   Gtk::Label label1("label1");
   Gtk::Label label2("label2");
   Gtk::MenuItem item1(label1);
   Gtk::MenuItem item2(label2);
   menu.append(item1);
   menu.append(item2);
   menu.show_all();
   menuButton.set_popup(menu);

   window.add(menuButton);
   window.show_all();
   return app->run(window);
}