gpt4 book ai didi

c++ - 如何使用 QModelIndex 访问 QStandardItemModel 及其数据?

转载 作者:行者123 更新时间:2023-11-30 01:52:43 31 4
gpt4 key购买 nike

我有一个 clicked()-signal它知道类型为 QModelIndex 的选定索引.

void onListClicked(const QModelIndex & index) { /* ... */ }

不,我想访问被点击项目的数据。我发现我可以使用 model() 访问模型:

void onListClicked(const QModelIndex & index)
{
QStandardItemModel * model {index.model()};
}

但这失败了,因为 model() getter 只允许我返回一个 QAbstractItemModel .

error: invalid conversion from 'const QAbstractItemModel*' to 'QStandardItemModel*' [-fpermissive]

如何访问 QStandardItemModel甚至更好的选择 QStandardItem?我的唯一标识符存储在 QStandardItem::data() 中.

我需要的是这样的:

void onListClicked(const QModelIndex & index)
{
QStandardItemModel * model {index.model()};
QStandardItem * item {model->itemFromIndex(index)};
qDebug() << item->data().toString();
}

但这行不通。为什么这么难。我在这里想念什么?

最佳答案

我认为你可以直接从模型索引中获取数据:

void onListClicked(const QModelIndex & index) {
index.data(Qt::UserRole + 1);
// ...
}

您可以使用任何其他角色来检索不同类型的数据。

关于c++ - 如何使用 QModelIndex 访问 QStandardItemModel 及其数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096304/

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