在子菜单qt中创建一个滚动条?

时间:2011-08-19 12:40:51

标签: c++ qt menu scrollbar

我有一个地图应用程序和一个子菜单,它有动态添加的对象(即地图上的点)添加到子菜单,具体取决于加载的图层。我可以通过单击相应的子菜单项来隐藏每个单独的对象(即一个点)。有没有办法组织子菜单?当存在许多点(即100)时,整个子菜单占据屏幕。我可以在子菜单中添加滚动条吗?我查看了文档,但找不到任何支持此功能的内容。

4 个答案:

答案 0 :(得分:8)

this bug report我发现你可以做到以下几点:

submenu->setStyleSheet("QMenu { menu-scrollable: 1; }");

像魅力一样。

答案 1 :(得分:0)

据我所知,没有这种可能性。 也许你不应该使用子菜单,但更喜欢一个显示你自己的Point Manager GUI的菜单条目,它会有一个QListWidget显示你所有的积分项目。 我知道这个解决方案会打破你的代码的一大部分,但我没有看到任何其他内容。

答案 2 :(得分:0)

虽然可以通过继承QMenu类来创建自定义窗口小部件并从那里开始,但最好还是查看显示该信息的更好方法。您可以节省自己的时间,并且您的用户可以更轻松地滚动浏览小区域中的大项目列表。

答案 3 :(得分:0)

我认为您可以通过创建和使用自己的QStyle子类(通过QApplication :: setStyle())获得所需的效果,并在传入的StyleHint参数为SH_Menu_Scrollable时重写styleHint虚方法以返回1 。至少,当我创建大型QMenu对象并将它们显示为弹出菜单时,这对我有用....它也可以用于附加到菜单栏的QMenus,但我还没有尝试过。