菜单

时间:2017-08-17 04:10:36

标签: c++ gtk gtkmm

我目前在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);
}

0 个答案:

没有答案