gpt4 book ai didi

Qt垂直菜单

转载 作者:行者123 更新时间:2023-12-04 10:17:32 24 4
gpt4 key购买 nike

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

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

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

我可以对 QMenuBar 进行布局,当它位于 QVBoxLayout 中时,它可以显示在顶部或底部。但是,我想要做的是将其方向从水平更改为垂直。我是 Qt 编程的新手,我的搜索没有产生正确的函数或 Widget 来获得这个功能。

感谢所有指点和提示。

这是一张图片,显示了我正在努力完成的事情。

menu structure

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

子菜单都需要水平显示,而不是我在上面的文本菜单中描述的“ TreeView ”。

问候

最佳答案

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

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

制作上述模型的基础是:

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

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

希望对您有所帮助。

关于Qt垂直菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12480432/

24 4 0