QDataWidgetMapper and QDateEdit values

QDataWidgetMapper and QDateEdit values

本文关键字:values QDateEdit and QDataWidgetMapper      更新时间:2023-10-16

我有一些带有表格的QSqlTableModel,假设它是一个

model->setTable("Person");

而且我还有QDataWidgetMapper,它将一些小部件(行编辑等)应用到模型中的适当列。
所以问题出在QDateEdit元素上。

mapper->addMapping(birthEdit, Person_Birthdate);

当我在 birthEditQDateEdit) 中更改日期时,值实际上并没有在适当的表中更改,因为它们以不同的格式存储,并且我还收到一个错误:

"QODBCResult::exec: unable to bind variable: "[Microsoft][ODBC SQL Server Driver]...".

数据库中的日期存储在"yyyy-MM-dd"中,而QDateEdit则在另一个中返回日期(我想)。据我所知,QDataWidgetMapper映射小部件中使用 USER 属性来获取/设置值。

如何解决我的问题?

根据

以下页面,您有两种方法可以采用:

  • 子类 QSqlRelationalDelegate 并在 setEditorData 和 setModelData 方法中进行适当的更改。

  • 扩展QDateEdit并使其处理时间戳数据并转换为QDate对象。