还是自己解决了,看了论坛上不少人问这个问题,给出一个答案,希望大家都来发表意见。
问题出在model的data函数,根据我调试的经过,当delegate通过该接口获取数据时会反复索取几次,并且会索取不同的Role,如果我们统一return ,那就会出现上述问题,修改的方式也很简单
QVariant PropertyModel::data(const QModelIndex &index, int role) const
{
QVariant a;
a.setValue(pList->at(index.row()));
if(role == Qt::DisplayRole)
return a;
else
return QVariant();
}