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

Ale*_*lex 1 c++ qt model

我正在构建一个自定义的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";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我得到的表视图中的所有内容都只是第二列中的文本.第一列中没有文件夹图标.

我在这里错过了什么吗?

cma*_*t85 5

Qt::DisplayRole仅适用于文字.加:

if ( role == Qt::DecorationRole ) {
    return iconProvider->icon(QFileIconProvider::Folder);
}
Run Code Online (Sandbox Code Playgroud)