Qt自定义列表

时间:2012-10-06 16:51:22

标签: c++ qt unity3d

我最近开始使用Qt,因为它比使用win32更直观,我一直在玩一堆不同的小部件,我不想尝试更复杂的东西,但是还没有能够在Qt参考或Google上找到与我想要的相关的任何内容。

我正在尝试做类似Unity3D Inspector的方法,我到目前为止我会如何去做,但似乎并没有为所需组件之一做些什么。

我会有一个可停靠的小部件,在这里我会有一个可滚动的区域,此时我正在寻找向这个可滚动区域添加'组件',这些组件将有所不同,它们应该具有扩展的能力/折叠成一行(组件的标识符),并且在扩展时应该能够在其中包含多个小部件,例如标签,复选框,其他可折叠部分等。

我必须在谷歌中不正确地写出我正在寻找的内容,因为它似乎没有任何类似于我想要的东西,但它似乎是一个普遍的想法。

1 个答案:

答案 0 :(得分:3)

2个解决方案:

1 /手动设计

码头:

*---------------QDockWidget---------------*
|                                         |
| *-------------QScrollArea-------------* |
| |                                     | |
| | *--------ExpandableWidget---------* | |
| | |                                 | | |
| | |                                 | | |
| | |                                 | | |
| | *---------------------------------* | |
| | *--------ExpandableWidget---------* | |
| | |                                 | | |
| | |                                 | | |
| | |                                 | | |
| | *---------------------------------* | |
| | *--------ExpandableWidget---------* | |
| | |                                 | | |
| | |                                 | | |
| | |                                 | | |
| | *---------------------------------* | |
| | *--------VerticalSpacer-----------* | |
| |                  |                  | |
| |                  |                  | |
| *-------------------------------------* |
|                                         |
*-----------------------------------------*

ExpandableWidget:

ArrowL是一个QLabel,只包含指示窗口小部件是折叠还是展开的箭头。您将自定义窗口小部件设置为所需的输入窗口小部件,例如int输入。您在折叠时隐藏此窗口小部件,并在展开时显示它。

*------------ExpandableWidget-------------*
|                                         |
| *-------------QVBoxLayout-------------* |
| |                                     | |
| | *-----------QHBoxLayout-----------* | |
| | | *-ArrowL-* *------QLabel------* | | |
| | *---------------------------------* | |
| |                                     | |
| | *---------Custom QWidget----------* | |
| | |                                 | | |
| | *---------------------------------* | |
| |                                     | |
| *-------------------------------------* |
|                                         |
*-----------------------------------------*

优点:您可以完全控制基座的行为方式。 缺点:您必须在全局小部件中自己实现此层次结构,以确保其一致性。

2 / QtPropertyBrower

QtPropertyBrowser是现已停止使用的Qt解决方案(licence)的一部分。它使您能够在几行代码中完成您想要的任务。