我有一个QTableView与QSqlTableModel连接。
在第一列,目前在格式仅日期:2010-01-02
我想这个栏,显示在此格式的日期(但不改变真实数据):02.01.2010
我知道我必须创建一个QItemDelegate对于本专栏,但我不知道如何读取现有数据并用不同的东西覆盖它。你有任何想法如何管理?用QItemDelegate显示QTableView中的其他数据
6
A
回答
4
一个item委托并不一定会改变数据,它只是呈现数据。另外,如果您使用的是Qt 4.4或更新的版本,请查看QStyledItemDelegate - 它是主题感知的,并且看起来更好。
有一个this article项目代表的例子(这似乎是正式文档的镜像,现在已经停止或消失)。
因为你真正想要做的就是自定义文本,你有没有考虑过使用代理模型,而只是返回日期列的DisplayRole的自定义QString?
14
最简单的解决方案是创建一个QStyledItemDelegate
子类,并重新实现displayText(...)
即
class DateFormatDelegate : public QStyledItemDelegate
{
public:
DateFormatDelegate (QString dateFormat, QObject *parent = 0) :
QStyledItemDelegate(parent),
m_dateFormat(dateFormat)
{
}
virtual QString displayText(const QVariant & value, const QLocale & locale) const
{
Q_UNUSED(locale);
return value.toDate().toString(m_dateFormat);
}
private:
QString m_dateFormat;
};
然后在您的视图 -
setItemDelegateForColumn(/*date column*/, new DateFormatDelegate("MM.dd.yyyy", this));
相关问题
- 1. 从QTableView中删除QItemDelegate
- 2. Qt为QTableView使用自定义QItemDelegate
- 3. PySide/pyQt在QTableView中显示数据
- 4. QTabWidget里面的QTableView不显示数据
- 5. 图只显示1图中的数据,但不显示其他
- 6. 使用QItemDelegate显示图像缩略图
- 7. QTableView中没有显示的行数
- 8. CakePHP的:与其他表的数据表显示数据
- 9. 如何将QWidget与QItemDelegate和QTableView一起使用
- 10. 基于其他列表的数据库显示数据laravel 5
- 11. QTableView中和ItemDelegate用于显示栏
- 12. 显示悬停时的表格中的其他数据
- 13. 为QTableView QItemDelegate编辑器上的自定义小部件
- 14. 显示来自其他表中的数据while while循环
- 15. 如何在视图中显示来自其他表的数据?
- 16. 来自SqlDataReader的数据不会显示在其他语句中
- 17. 如何让表中的数据不再显示在其他
- 18. 显示不在其他表中的数据加入codeigniter
- 19. 显示图像以及表格中的其他数据
- 20. QTableView添加到设计器中:不显示数据
- 21. 如何将数据库数据显示到其他页面?
- 22. 显示一个隐藏的列QTableView中
- 23. pyQt QTableView不显示数字(int,float等)
- 24. PHP显示其他的div
- 25. 用一个连接(配置)显示数据,其他不是
- 26. 从其他数据库显示数据时在vBulletin中的错误字体
- 27. 在数据框中添加两列并显示其他列
- 28. 在其他模型视图中显示一个模型数据?
- 29. 如何仅显示从数据库登录用户数据而不显示其他数据?
- 30. PHP:从数据库中,然后在其他页面显示计数数据
两个委托或代理模式将在这种情况下工作得很好。但是,代表可能更接近于意图的内容。 –
我的问题是,我没有得到如何使它与QItemDelegate。 paint() - 方法不适用于我 – Berschi
具体来说,paint()的问题是什么? – ChrisV