假设我有一个带有相应型号的QTableView。此视图仅显示数字,我希望不同列的数字格式不同。
一些例子:
现在我可以在模型的数据函数中执行此操作。 Qt.DisplayRole
处理数字格式,Qt.ForegroundRole
可以处理着色。虽然着色按预期工作,但以这种方式进行数字格式化会破坏排序。
有没有办法更直接地实现这一目标?我试着用Google搜索,看看我能找到什么,但很好的例子说明了我的目标。
答案 0 :(得分:3)
如果您使用QStandardItemModel
作为模型,则可以将sortRole
设置为使用Qt::EditRole
而不是Qt::DisplayRole
。
如果您使用QAbstractItemModel
之类的内容,则可以覆盖sort
方法并执行类似操作,即使用Qt::EditRole
值。您还可以在模型周围包裹QSortFilterProxyModel
并覆盖lessThan
方法。