16,902
社区成员




bool DataListModel::setData(const QModelIndex & index, QVariant value, int role)
{
qDebug() << index;
if (index.isValid() && role == Qt::DisplayRole && !(index.row() >= m_list.size() || index.row() < 0))
{
qDebug() << "2222";
int row = index.row();
Data &data = m_list[row];
switch(index.column())
{
case 0:
data.settype(value.toString());
break;
case 1:
data.setsize(value.toString());
break;
default:
return false;
}
emit dataChanged(index, index);
return true;
}
return false;
}
Qt::ItemFlags DataListModel::flags(const QModelIndex &index) const
{
if (!index.isValid())
return Qt::ItemIsEnabled;
return QAbstractTableModel::flags(index) | Qt::ItemIsEditable;
}
onClicked: {
myModel.setData(index,“abc”,0);
}
我在QML里这样去调用有问题,我打印index的值
显示QModelIndex(-1,-1,0x0,QObject(0x0)),index.isValid()为false了
QModelIndex应该需要的是整行的数据吧?