gpt4 book ai didi

c++ - 可排序的 QHBoxLayout

转载 作者:行者123 更新时间:2023-11-28 03:53:16 26 4
gpt4 key购买 nike

我正在使用 Qt 创建一个类似条形图的可排序小部件。该小部件为图中的每个条形图(也是小部件)布置了一个 QHBoxLayout。

当用户更改排序参数时,我的 Controller 会清除布局、对其进行排序,然后按顺序对每个项目调用 addWidget。我面临的问题是这个列表非常大(超过 1000 个小部件),并且 Qt 在尝试布置那么多元素时正在爬行。

我发现每次调用 addWidget 时,Qt 都会重新计算 QHBoxLayout 中每个项目的位置,然后更新。这是一个问题,因为它在我添加的 LayoutItem 之前对每个 LayoutItem 执行了大量不必要的计算。对于我放入的 1000 个测试项目,求助大约需要 30 秒,这显然太长了。

是否有更好的布局类型可供使用,或者是否有更快的方法将一组已排序的小部件添加到布局中?

编辑:显然,我遇到的问题不是 Qt 再次对每个项目进行布局,而是在幕后进行的所有育儿和恶作剧的内部结构我设置了一个测试项目以向布局添加 1000 个按钮,打印每次出一个柜台。这些数字几乎是瞬间打印出来的,尽管 Qt 花费了同样约 30 秒的时间来整理自己。我认为这个问题不仅仅存在于 QHBoxLayout 中,而且通常存在于 Qt 的布局系统中。看起来我将手动定位小部件并完全绕过 QLayout。感谢所有提供意见的人。

最佳答案

来自 documenationvoid QLayout::setEnabled(bool enable)

Enables this layout if enable is true, otherwise disables it.
An enabled layout adjusts dynamically to changes; a disabled layout acts as if it did not exist.
By default all layouts are enabled.

关于c++ - 可排序的 QHBoxLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672522/

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