【问题标题】:create a scrollbar in a submenu qt?在子菜单qt中创建滚动条?
【发布时间】:2011-10-30 14:32:50
【问题描述】:

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

【问题讨论】:

    标签: c++ qt menu scrollbar


    【解决方案1】:

    来自this bug report 我发现您可以执行以下操作:

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

    像魅力一样工作。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        虽然可以通过继承 QMenu 类来创建自定义小部件,然后从那里开始,您最好寻找一种更好的方式来显示该信息。您将节省自己的时间,并且您的用户不必在小区域内滚动浏览大量项目列表会容易得多。

        【讨论】:

          【解决方案4】:

          据我所知,没有这种可能性。 也许您不应该为此使用子菜单,而是更喜欢显示您自己的点管理器 GUI 的菜单条目,其中 QListWidget 显示您的所有点项目。 我知道这个解决方案会破坏您代码的(大?)部分,但我没有看到其他任何内容。

          【讨论】:

          • 所以基本上创建一个弹出窗口而不是子菜单来管理所有对象?
          猜你喜欢
          • 2011-01-23
          • 2012-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多