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();
关键改动说明
- 列区分处理:通过
j == 0判断是否为第一列,单独处理图标和文本逻辑 - 第一列文本清空:用空字符串初始化项,确保单元格只显示图标
- 其他列取消图标设置:仅第一列调用
setIcon,其余列仅创建纯文本项,避免多余图标
内容的提问来源于stack exchange,提问作者Freecat
相关产品推荐
相关产品推荐

