包含自定义(和复杂)窗口小部件的可扩展项列表

时间:2019-06-07 08:38:13

标签: qt

这个问题更多的是关于Qt框架知识,而不是编码问题。

我想知道Qt Framework中是否存在一个容器,该容器显示可展开/可折叠项目的列表视图。这些项目比简单的QLabel要复杂得多。

更准确地说,我需要一个自定义小部件列表。
每个小部件都有一个QHBoxLayout(使每个项目都适合于一行),其中包含内部小部件,包括扩展/折叠切换按钮(在布局的第一个/左侧位置)。
当展开/折叠按钮打开时,我希望看到下面显示一个容器面板并显示更多详细信息(另一个复杂的小部件)。
很明显,当展开/折叠按钮关闭时,此附加面板必须隐藏。

我的问题是,Qt框架中是否存在这样的 gui 设计结构?
我在Qt文档中找不到这样的对象,但是由于我真的不知道它叫什么名字。

我可能会用或多或少的棘手解决方法来做到这一点,如here for example所示。
但是我想确保我不会实现Qt框架中可能已经存在的类,因为这种类型容器的包装在许多应用中非常普遍。

如果有人对Qt框架有一定的了解可以启发我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

总而言之,这里的问题分为两个部分:

  • 关于可扩展小部件的存在。
  • 关于列表视图的存在,该视图可以处理任何包括可扩展窗口小部件的窗口小部件。

由于Qt框架中不存在此类容器,因此我编写了自己的C ++实现,可以在here中找到。
qt_widgets_extensions.hpp中,我定义了{{1} }和qt_ext::QExpandableWidget完全回答了问题的两个方面。您可以检查链接以获取有关这些容器提供的功能的更多详细信息。

我认为将这种实现翻译成另一种语言(例如 Python )可能很容易。