1

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

我正在尝试做 Unity3D Inspector 框之类的事情,到目前为止,我已经了解了我将如何进行的工作,但似乎没有所需组件之一的东西。

我将有一个可停靠小部件,在此我将有一个可滚动区域,此时我希望将“组件”添加到此可滚动区域,这些组件都会有所不同,它们应该能够展开/折叠成一行(组件的标识符),并且在展开时应该能够在其中包含多个小部件,例如标签、复选框、其他可折叠部分等。

我一定是用不恰当的措辞来表达我在谷歌中寻找的东西,因为它似乎没有任何与我想要的东西相似的东西,但这似乎是一个普遍的想法。

4

1 回答 1

3

2个解决方案:

1/ 手动设计

码头:

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

可扩展小部件:

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

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

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

2/ QtPropertyBrower

QtPropertyBrowser是现已停产的 Qt 解决方案(许可证)的一部分。它使您几乎可以在几行代码中完成您想要的事情。

于 2012-10-06T20:16:53.223 回答