我正在尝试将QSqlTableModel与QTableView一起使用,但我想隐藏2列updated_date和created_date,这很简单,但我希望用户可以编辑TableView中的数据,并在完成时(或者提交时)该数据)自动将updated_date更新为当前日期时间。我需要程序来做,而不是从数据库引擎。 我应该采取什么步骤来做到这一点?我在考虑实现setData方法,但我不知道如何。 非常感谢您的时间和帮助。
答案 0 :(得分:0)
您可以重新实现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);
}
但我建议你使用数据库触发器来完成这项任务。