【发布时间】:2014-06-07 10:36:37
【问题描述】:
我有一个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();
}
但这不起作用。为什么这么难。我在这里想念什么?
【问题讨论】: