我有一个 4 列的 QtableView,我正在从 .csv 文件填充它。第一列单元格显示图像文件夹中的自定义图标,其余列仅是文本。一切都按预期工作,但图标图像的路径显示为同一单元格中图像旁边的文本。有没有办法只显示图像而不显示图像的路径?
{
QFile file("/home/image.csv");
if (file.open(QIODevice::ReadOnly))
{
int lineindex = 0;
QTextStream in(&file);
while (!in.atEnd()) {
QStringList lineToken;
QString fileLine = in.readLine();
lineToken = fileLine.split(",", QString::SkipEmptyParts);
for (int j = 0; j < lineToken.size(); j++)
{
QString myValue = lineToken.at(j);
QStandardItem *lineItem = new QStandardItem(myValue);
lineItem->setIcon(QIcon(myValue));
modeli->setItem(lineindex, j, lineItem);
}
lineindex++;
}
file.close();
ui->tableView->setModel(modeli);
}
ui->tableView->resizeRowsToContents();
}
我终于成功了。谢谢musicamante,你的评论让我思考了一种不同的方法来解决这个问题。
{
QFile file("/home/user/images/image.csv");
if (file.open(QIODevice::ReadOnly))
{
int lineindex = 0;
QTextStream in(&file);
while (!in.atEnd()) {
QStringList lineToken;
QString fileLine = in.readLine();
lineToken = fileLine.split(",", QString::SkipEmptyParts);
for (int j = 0; j < lineToken.size(); j++)
{
QString myValue = lineToken.at(j);
QStandardItem *lineItem = new QStandardItem(myValue);
QStandardItem *lineItem1 = new QStandardItem();
QString myPath = myValue.prepend("/home/user");
lineItem1->setIcon(QIcon(myPath));
modeli->setItem(lineindex, 0, lineItem1);
modeli->setItem(lineindex, j, lineItem);
}
lineindex++;
}
file.close();
ui->tableView->setModel(modeli);
}
ui->tableView ->setIconSize(QSize(300, 300));
ui->tableView->resizeRowsToContents();
ui->tableView->resizeColumnsToContents();
}