我知道QDateTime会以Windows的方式显示时间戳。 我可以更改格式而不将QDateTime转换为字符串,因为这会禁用特殊的过滤功能吗?
答案 0 :(得分:0)
由于您提到QDateTime
显示,我假设您使用QDateTimeEdit
来显示它。
用于显示的格式与本地化设置直接相关。您可以通过调用setDisplayFormat(const QString &format)
对象的QDateTimeEdit
来使用自己的显示设置。
displayFormat不会更改存储在其中的数据。
例如:
ui->dateTimeEdit->setDisplayFormat("dd.MM.yyyy");
如果您不是这种情况,则需要了解有关您的特定用途的更多信息。
答案 1 :(得分:0)
我通过在使用 QDateTime
调用 QVariant<QString>
时将 model->data(idx, role)
返回为 Qt::DisplayRole
解决了这个问题。然后,我使用用户定义的角色进行排序和过滤,以便在调用 model->data(idx, role)
时使用这些角色时,我可以返回 QVariant<QDateTime>
。