我正在尝试将 QSqlTableModel 与 QTableView 一起使用,但我想隐藏 2 列 updated_date 和 created_date,这很容易,但我希望用户可以在 TableView 中编辑数据,并在完成时(或提交该数据时)自动将 updated_date 更新为当前日期时间。我需要程序来做,而不是来自数据库引擎。我应该遵循哪些步骤来做到这一点?我正在考虑实现 setData 方法,但我不知道如何实现。非常感谢您的时间和帮助。
问问题
426 次
1 回答
1
您可以重新实现子类setData()
的功能QSqlTableModel
并像这样:
virtual bool YourModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)
{
if (index.column() != updated_date) {
QSqlTableModel::setData(index(index.row(), updated_date), QDate::currentDate(), role);
}
return QSqlTableModel::setData(index, value, role);
}
但我宁愿建议您使用数据库触发器来完成这项任务。
于 2013-10-27T15:58:25.457 回答