gpt4 book ai didi

c++ - 具有许多自定义项的 QListWidget 性能

转载 作者:太空狗 更新时间:2023-10-29 20:24:58 25 4
gpt4 key购买 nike

我有一个包含大约 2500 个自定义项的列表。我将它们设置为:

 const std::vector<const Items::AbstractItem *> results = _engine.request(text);
if (!results.empty())
{
for (auto i : results){
QListWidgetItem *lwi = new QListWidgetItem;
_results->addItem(lwi);
ListItemWidget *w = new ListItemWidget;
w->setName(i->name());
w->setTooltip(i->path());
_results->setItemWidget(lwi, w);
}
_results->setFixedHeight(std::min(5,_results->count()) * 48); // TODO
_results->show();
}

这在 i5-4590 上大约需要 5 秒。隐藏小部件的速度是原来的两倍。这是正常现象还是我发现了错误?

最佳答案

一些想法:

  • 尝试为您的 QWidgets 分配适当的父级,这样布局就不必这样做为你映射。这应该有助于提高性能。

  • 在开始插入之前调用 setUpdatesEnable(false),并在插入完成后调用 true

至于在添加大量项目时隐藏小部件,这将有助于减少无关的更新调用。上面的第二个建议应该可以缓解这种情况。

关于c++ - 具有许多自定义项的 QListWidget 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25571195/

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