我在下面复制的 QAbstractItemModel.setData
文档表示,如果成功,该方法应返回 true,否则返回 false。我的问题是:这个方法怎么会不成功?
bool QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)
Sets the role data for the item at index to value.
Returns true if successful; otherwise returns false.
The dataChanged() signal should be emitted if the data was successfully set.
The base class implementation returns false. This function and data() must be reimplemented for editable models.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
See also Qt::ItemDataRole, data(), and itemData().
最佳答案
setData()返回值的目的是指示与角色和QModelIndex关联的信息是否被编辑,返回true还是false取决于开发者。
一些说明上述内容的示例:
如果您希望模型不可编辑(默认情况下为任何模型),则始终返回 false。
如果您只希望某些项目可编辑或不可编辑,那么您将根据项目返回 true 或 false。
如果您希望新值满足某些限制。一个实际的例子是,如果要编辑的项目必须是年龄,那么对于负值,它必须返回 false,对于其他情况,它必须返回 true。
关于python - `setData` 方法怎么会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64145912/