与一个QTableView
and QAbstractTableModel
- 当模型发出dataChanged
正在编辑的单元格的事件,用户在单元格中键入的字符串(但未按 Enter 键“提交”编辑)将被删除。
Example:单击一个单元格,输入“123”,单元格仍处于编辑模式等待更多文本,dataChanged
发出并且“123”被擦除,在编辑模式下留下一个空单元格。
有谁知道如何阻止这种行为,或者模型如何检测何时编辑单元格以防止dataChanged
为该单元引发的事件?
我有同样的问题。事情是这样的data()
函数被不同的调用role
范围。用于显示role==Qt::DisplayRole
并在编辑时调用role==Qt::EditRole
。例如尝试改变
QVariant MyModel::data(const QModelIndex & index, int role) const
{
if (role == Qt::DisplayRole)
return QString("Text to Edit");
}
to
QVariant MyModel::data(const QModelIndex & index, int role) const
{
if (role == Qt::DisplayRole || role == Qt::EditRole)
return QString("Text to Edit");
}
这应该够了吧
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)