Qt垂直菜单

时间:2012-09-18 15:43:26

标签: qt menu

我正在尝试使用具有以下示例结构的Qt应用程序创建垂直菜单:

    Language
      |--> Select
         |--> English
      |--> Load
    Image
      |--> Save Format
         |--> JPEG
         |--> Bitmap
      |--> JPEG Quality
         |--> Super High
         |--> High
         |--> Low

等等。我理想地希望使用QMenuBar来实现顶级菜单项以及所有子菜单。我还想利用可用于触发这些不同选项的信号/插槽。有些选项属于On和Off品种,能够通过选中标记快速反映所选择的选项,或者是理想的选择。

我可以布置QMenuBar并将其显示在QVBoxLayout内的顶部或底部。但是,我想要做的是将其方向从水平变为垂直。我是Qt编程的新手,我的搜索没有产生正确的功能或用于获得此功能的Widget。

赞赏所有指针和提示。

这是一张图片,展示了我正在努力实现的目标。

menu structure

用户已选择“传感器显示”并显示3个子选项(压力,平移和倾斜,辐射),并且默认情况下也会移动到第一个选项(压力),恰好有2个子选项选项(开,关)。

子菜单都需要横向显示,而不是我在上面的文本菜单中描述的“树视图”。

此致

1 个答案:

答案 0 :(得分:2)

我实现了一个类似于上图的菜单。我完全用QML构建它,并集成了C ++源代码中的所有数据模型,信号和插槽。

查看RSS News Example作为起点。在此示例中,它们向您展示了如何使用QML构建水平菜单。

进行上述模拟的基础知识是:

  • 您需要构建三个QML列表视图(在数据模型中填充列表,格式化列表中每个元素在委托中的外观)
  • 逻辑可以用C ++或QML编写,我建议使用基于状态的方法,如果你的列表会很长很复杂。单击第一列中的一个列表元素将必须显示/隐藏/滚动第二个列表,依此类推。

如果将QML列表视图元素连接到适当的信号和插槽,则可以使用C ++完成上述所有操作。

我希望有所帮助。