【发布时间】:2011-10-30 14:32:50
【问题描述】:
我有一个地图应用程序和一个子菜单,其中动态添加了对象(即地图上的点)添加到子菜单中,具体取决于加载的图层。我可以通过单击相应的子菜单项来隐藏每个单独的对象(即一个点)。有没有办法组织子菜单?当有很多点(即 100)时,整个子菜单会占据屏幕。我可以在子菜单中添加滚动条吗?我查看了文档,但找不到任何支持此功能的内容。
【问题讨论】:
我有一个地图应用程序和一个子菜单,其中动态添加了对象(即地图上的点)添加到子菜单中,具体取决于加载的图层。我可以通过单击相应的子菜单项来隐藏每个单独的对象(即一个点)。有没有办法组织子菜单?当有很多点(即 100)时,整个子菜单会占据屏幕。我可以在子菜单中添加滚动条吗?我查看了文档,但找不到任何支持此功能的内容。
【问题讨论】:
【讨论】:
我想你或许可以通过创建和使用自己的QStyle子类(通过QApplication::setStyle())得到你想要的效果,并且当传入的StyleHint参数为SH_Menu_Scrollable时重写styleHint虚方法返回1 .至少,当我创建大型 QMenu 对象并将它们显示为弹出菜单时,这对我有用......它也可能适用于附加到菜单栏的 QMenus,但我还没有尝试过。
【讨论】:
虽然可以通过继承 QMenu 类来创建自定义小部件,然后从那里开始,您最好寻找一种更好的方式来显示该信息。您将节省自己的时间,并且您的用户不必在小区域内滚动浏览大量项目列表会容易得多。
【讨论】:
据我所知,没有这种可能性。 也许您不应该为此使用子菜单,而是更喜欢显示您自己的点管理器 GUI 的菜单条目,其中 QListWidget 显示您的所有点项目。 我知道这个解决方案会破坏您代码的(大?)部分,但我没有看到其他任何内容。
【讨论】: