c++ 如何在Gio::Menu中添加分隔符

qyyhg6bp  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(119)

我正在用GTK 3和gtkmm编写一个应用程序。我在标题栏中添加了一个菜单按钮。到目前为止,我已经显示了一些项目,但是我不能添加分隔符。
下面是我创建菜单的位置:

auto main_menu = Gio::Menu::create();

...并添加一些项目:

main_menu->append("Export to WAV", "app.exportToWav");
main_menu->append("About", "app.about");

我得到的是:

但是我想在这两个项目之间添加一条水平线。似乎没有明显的方法可以在Gio::Menu中实现这一点,并且我希望弹出该弹出框。我尝试添加一个内容为“-”的项目,但没有任何效果。Gtk::SeparatorMenuItem存在,但似乎并不兼容。这在这种菜单中是否可行?

5uzkadbs

5uzkadbs1#

我发现,在Gio::Menu中,你不需要指定"分隔符"本身,而需要指定部分。
本质上,这意味着创建多个菜单,然后使用append_section(Gio::MenuModel)函数将它们组合在一个菜单中。
这是我最后做的:

// Create master menu
auto main_menu = Gio::Menu::create();

// Create menu sections
auto main_menu_section1 = Gio::Menu::create();
auto main_menu_section2 = Gio::Menu::create();

// Add item(s) to first section
main_menu_section1->append("Export to WAV", "app.exportToWav");

// Add item(s) to second section
main_menu_section2->append("About", "app.about");

// Append the new sections to the master menu
main_menu->append_section(main_menu_section1);
main_menu->append_section(main_menu_section2);

然后,每个部分由一条水平线分隔:
很微弱,但就在那里

相关问题