与QTableView
和一起使用QAbstractTableModel
-当模型dataChanged
为正在编辑的单元格发出事件时,将删除用户在单元格中键入的字符串(但未按Enter键以“提交”编辑)。
示例:单击一个单元格,键入“ 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");
}
到
QVariant MyModel::data(const QModelIndex & index, int role) const
{
if (role == Qt::DisplayRole || role == Qt::EditRole)
return QString("Text to Edit");
}
这应该够了吧
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句