3

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

    语
      |--> 选择
         |--> 英文
      |--> 加载
    图片
      |--> 保存格式
         |--> JPEG
         |--> 位图
      |--> JPEG 质量
         |--> 超高
         |--> 高
         |--> 低

等等。理想情况下,我QMenuBar不仅希望用于实现顶级菜单项,还希望用于实现所有子菜单。我还想利用可用于触发这些不同选项的信号/插槽。一些选项是 On 和 Off 种类,并且能够用复选标记或其他东西快速反映所选的选择将是理想的。

我可以对 进行布局,QMenuBar并将其放置在QVBoxLayout. 但是,我想要做的是将其方向从水平更改为垂直。当谈到 Qt 编程时,我是一个新手,我的搜索没有产生正确的功能或小部件来获得此功能。

所有的指针和提示表示赞赏。

这是一张图片,显示了我要完成的工作。

菜单结构

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

与我在上面的文本菜单中描述的“树视图”相反,子菜单都需要水平显示。

问候

4

1 回答 1

2

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

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

制作上述模型的基础是:

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

如果您将 QML 列表视图元素连接到适当的信号和插槽,则可以在 C++ 中执行上述所有操作。

我希望这会有所帮助。

于 2012-10-03T20:52:42.320 回答