Qt:模型/视图-定义项目持有日期的格式



我有一个模型,它有QDate作为Qt::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);
        }
    }
}; 

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

Thx用于所有注释。

总结:没有自定义委托是不可能做到的

相关内容

  • 没有找到相关文章

最新更新