gpt4 book ai didi

qlist - 如何更新特定的 QAbstractListModel 项目?

转载 作者:行者123 更新时间:2023-12-05 06:39:35 27 4
gpt4 key购买 nike

我从 QAbstractListModel 派生了一个类 FeedItemViewModel。我已经实现了一种在列表模型中添加项目的方法,但我不知道如何更新具有特定 ID 的项目。

代码如下:

void FeedItemViewModel::addFeedItem(FeedItem* feedItem)
{
beginInsertRows(QModelIndex(), rowCount(), rowCount());
m_feedItems.append(feedItem);
endInsertRows();
}

void FeedItemViewModel::updateFeedItem(FeedItem* feedItem)
{
int id = feedItem->id();
auto iter = std::find_if(m_feedItems.begin(), m_feedItems.end(),
[id](FeedItem* item)
{
return item->id() == id;
});
}

最佳答案

这是我找到的解决方案:

void FeedItemViewModel::updateFeedItem(FeedItem* feedItem)
{
int id = feedItem->id();
auto iter = std::find_if(m_feedItems.begin(), m_feedItems.end(),
[id](FeedItem* item)
{
return item->id() == id;
});

if(iter != m_feedItems.end())
{
int indx = m_feedItems.indexOf(*iter);
m_feedItems[indx] = feedItem;
dataChanged(index(indx), index(indx));
}
}

关于qlist - 如何更新特定的 QAbstractListModel 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44306736/

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