gpt4 book ai didi

c++ - Qt 自定义列表

转载 作者:行者123 更新时间:2023-11-30 02:59:38 25 4
gpt4 key购买 nike

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

我正在尝试做一些类似 Unity3D Inspector box 的事情,到目前为止我已经知道我会怎么做,但似乎没有一个需要的组件。

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

我在 google 中寻找的内容的措辞肯定不当,因为它似乎没有与我想要的东西相似的东西,但这似乎是一个普遍的想法。

最佳答案

2个解决方案:

1/手动设计

码头:

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

可扩展小部件:

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

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

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

2/QtPropertyBrower

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

关于c++ - Qt 自定义列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12761774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com