You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QTableView设置图标时如何仅显示图标而隐藏图片路径?

解决QTableView图标单元格同时显示路径的问题

问题出在你当前的代码里,所有列都设置了图标,而且第一列的QStandardItem是用图片路径初始化的,导致单元格同时显示文本和图标。只需要针对第一列做特殊处理即可:

  • 仅为第一列(索引j=0)设置图标
  • 第一列的QStandardItem用空字符串初始化,避免显示路径文本

修改后的代码如下:

QFile file("/home/image.csv");
if (file.open(QIODevice::ReadOnly))
{
    int lineindex = 0;
    QTextStream in(&file);

    while (!in.atEnd()) {
        QStringList lineToken = in.readLine().split(",", QString::SkipEmptyParts);

        for (int j = 0; j < lineToken.size(); j++)
        {
            QString myValue = lineToken.at(j);
            QStandardItem *lineItem;
            
            if (j == 0) {
                // 第一列:空文本+图标
                lineItem = new QStandardItem("");
                lineItem->setIcon(QIcon(myValue));
            } else {
                // 其他列:仅显示文本,不设置图标
                lineItem = new QStandardItem(myValue);
            }

            modeli->setItem(lineindex, j, lineItem);
        }
        lineindex++;
    }
    file.close();
    ui->tableView->setModel(modeli);
}
ui->tableView->resizeRowsToContents();

关键改动说明

  1. 列区分处理:通过j == 0判断是否为第一列,单独处理图标和文本逻辑
  2. 第一列文本清空:用空字符串初始化项,确保单元格只显示图标
  3. 其他列取消图标设置:仅第一列调用setIcon,其余列仅创建纯文本项,避免多余图标

内容的提问来源于stack exchange,提问作者Freecat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 11:12:38