如何通过自定义QAbstractItemModel在QTableView中显示图标

How to display icons in QTableView via a custom QAbstractItemModel?

本文关键字:显示 显示图 图标 QTableView 何通过 自定义 QAbstractItemModel      更新时间:2023-10-16

我正在构建一个自定义的QAbstractItemModel模型。

第一列包含图标,第二列包含文本。

这是数据方法的代码:

QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const
{
    if(role != Qt::DisplayRole )
        return QVariant();
    int col = index.column();
    if (col == 0)
    {
        return iconProvider->icon(QFileIconProvider::Folder);
    }
    else if (col == 1)
    {
        return "TEXT";
    }
}

但是我在生成的表视图中得到的只是第二列中的文本。第一列中没有文件夹图标。

我在这里错过了什么吗?

Qt::DisplayRole仅适用于文本。加:

if ( role == Qt::DecorationRole ) {
    return iconProvider->icon(QFileIconProvider::Folder);
}