使用QTableView单元格编辑功能时,遇到了以下问题:
双击可编辑,但单元格内容置空,未修改退出编辑状态,内容变为0。
应该这样修改,即可双击单元格进入编辑状态,内容处于被选中状态,

QVariant dataModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
if (role == Qt::TextAlignmentRole)
{
return int(Qt::AlignRight | Qt::AlignVCenter);
}
else if (role == Qt::EditRole) //这里是数据在编辑状态的显示行为
{
switch ( index.column() )
{
//返回对应数据 ...
}
}
//...
return QVariant();
}
在使用Qt的QTableView进行单元格编辑时遇到一个问题:双击编辑后,内容清空并默认显示为0。解决方法在于正确处理Qt::EditRole,确保编辑状态下显示已有的内容。在QVariant dataModel::data(const QModelIndex& index, int role)函数中,对于Qt::EditRole,返回对应列的实际数据,保持编辑前后的数据一致性。
4505





