Qt: model/view - 定义项目持有日期的格式

Qt: model/view - defining format of items holding date

我有一个模型,其中的项目 QDateQt::DisplayRole/Qt::EditRole。 它工作正常 - 视图正确呈现这些项目并提供漂亮的日期编辑器。唯一的缺点是我想更改显示的日期格式。

有没有比使用自定义绘画准备委托更简单的方法 + QItemEditorFactory + QItemEditorCreatorBase 等?

在我看来,形式战胜了内容。

如果您只需要在特定单元格中显示日期,您应该继承 QStyledItemDelegate 并覆盖它 QString displayText(const QVariant& value, const QLocale& locale) const;

class DateItemDelegate :
    public QStyledItemDelegate
{
public:
    DateItemDelegate (QObject* parent) :
        QStyledItemDelegate(parent) {};


    QString displayText(const QVariant& value, const QLocale& locale) const
    {
        if (value.type() == QVariant::DateTime)
        {
            return value.toDateTime().toString(Qt::ISODate);
        }
    }
}; 

对于我来说,如果你想在一个单元格中显示多个数据,你应该使用自定义绘画。

感谢所有评论。

总结:没有自定义委托是没办法的