|
沙发

楼主 |
发表于 2018-8-18 14:35:07
|
只看该作者
上下文菜单
最多支持两级菜单。
PC上,触发二级菜单的机制是移动鼠标,触摸平台触发二级菜单的机制是单击。
使用
1、准备菜单项
std::vector<gui2::tmenu::titem>表示菜单、子菜单。每个菜单项是一字符串和一图标组成。
- std::vector<gui2::tmenu::titem> items, subitems;
- items.push_back(gui2::tmenu::titem("abc", val1));
- subitems.push_back(gui2::tmenu::titem("2abc", val2));
- items.push_back(gui2::tmenu::titem("sub", subitems));
复制代码
2、显示菜单
- gui2::tmenu dlg(items, initial_sel, nullptr, true);
- dlg.show(widget.get_x(), widget.get_y() + widget.get_height() + 16 * twidget::hdpi_scale);
复制代码 显示菜单后,Rose会处理显示、隐藏二级菜单,app写专门代码。
3、获得返回值
dlg.get_retval() != gui2::twindow::OK表示用户取消了菜单。
dlg.selected_val()返回用用户选择了那个项的cookie值。
注释
1、一个菜单对应一个dialog,两级菜单都展开时对应两个dialog。
2、PC平台,鼠标在第一级菜单移动到其它项时,展开下级菜单。移动平台,单击第一级菜单项时,展开下级菜单。
|
|