1

我现在还不清楚代表系统。

我有一个 QListView 正确显示我的自定义模型。

我的模型由以下列组成:

  • 第 1、2 和 3 列是一个文本列,该列的项目文本使用填充QAbstractItem::setText();

  • 第 4、5、6 和 7 列是自定义类的 QVariant。这些列的项目填充QAbstractItem::setData(QVariant::fromValue(MyCustomClass());

我需要从 QListView 中显示第 1,2 和 3 列上的文本,并在第 4,5,6 和 7 列上显示通过 MyCustomClass 的方法获得的自定义 QString。

我怎样才能做到这一点?

4

1 回答 1

3

使用QAbstractItemView::setItemDelegateForColumn(int column, QAbstractItemDelegate* delegate)文档

你有定制模型吗?如果您从自定义数据中提取的只是文本,则重新实现会更容易QAbstractItemModel::data(const QModelIndex& index, int role) const,查询是哪一列index,如果是您的自定义数据列,则返回带有自定义数据文本的显示角色;否则只需调用父实现。

于 2013-05-02T14:19:31.123 回答