我目前在Gtk弹出菜单上遇到了一些问题。
我有一个MenuButton设置,菜单中有一个MenuItem。
单击时,菜单会弹出但只有一小部分,就像没有项目一样,并且不会显示“首选项”项。
是否有我没有打电话的功能,或者没有添加MenuItem。当我在Inspector中查看程序时,它并没有在任何地方显示菜单。
我不想在Glade中使用Gtk Builder来创建一个弹出菜单。
不确定是否需要,但这是在Msys2下使用Gtk 3.22。
#include <gtkmm.h>
class WindowTest : public Gtk::Window {
public:
WindowTest() {
set_titlebar(mHeaderBarApp);
mBoxContainer.set_orientation(Gtk::Orientation::ORIENTATION_VERTICAL);
mBoxContainer.pack_start(mHeaderBarApp, false, true, 0);
mHeaderBarApp.set_show_close_button(true);
mHeaderBarApp.pack_end(mMenuButtonApp);
mMenuButtonApp.set_image(mImageApp);
mImageApp.set_from_icon_name("open-menu-symbolic", Gtk::BuiltinIconSize::ICON_SIZE_BUTTON);
mMenuButtonApp.set_popup(mMenuApp);
mMenuApp.append(mMenuItemPreferences);
mMenuItemPreferences.set_label("Preferences");
add(mBoxContainer);
show_all_children();
};
virtual ~WindowTest() {};
protected:
Gtk::Box mBoxContainer;
Gtk::HeaderBar mHeaderBarApp;
Gtk::MenuButton mMenuButtonApp;
Gtk::Image mImageApp;
Gtk::Menu mMenuApp;
Gtk::MenuItem mMenuItemPreferences;
};
int main(int argc, char *argv[]) {
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "com.site.test");
WindowTest windowTest;
windowTest.set_default_size(600, 400);
return app->run(windowTest);
}