在QTableView模型字段中显示图像和文本

时间:2014-12-22 05:45:19

标签: c++ qt qt4 qtableview

我正在编写一个Qt GUI C ++程序,我计划填充表格视图,例如3X2表格视图。字段中的文本来自 .csv 文件。随着文本,还会有一个小图标/图像。

要了解它可能看起来有点像UI;

enter image description here

现在将文字添加到我已使用的QTable模型视图中;

QStandardItemModel *model = new QStandardItemModel;

QFile file("/home/aj/beta_test.csv");
if (file.open(QIODevice::ReadOnly))
{
    int lineindex = 0;          // file line counter
    QTextStream in(&file);      // read to text stream

    while (!in.atEnd()) {

        QStringList lineToken;
        QString fileLine = in.readLine();   // read one line (separated by "\n")

        lineToken = fileLine.split(",", QString::SkipEmptyParts); // parse a line into separate pieces with "," as the delimiter

        for (int j = 0; j < lineToken.size(); j++)    // load parsed data to model accordingly
        {
            QString value = lineToken.at(j);
            QStandardItem *item = new QStandardItem(value);
            model->setItem(lineindex, j, item);
            ui->tableView->setModel(model);
        }
        lineindex++;
    }
    file.close();
}

现在如何执行添加图像部分???

1 个答案:

答案 0 :(得分:4)

您可以使用标准方法:

item->setIcon(QIcon("path"));

或使用索引执行此操作(使用setData()Qt::DecorationRole

添加后,您可以调用resizeRowsToContents()在您的单元格中显示完整图片。

此外,我注意到您在每次迭代中都设置了模型。这没错,但效率非常低(特别是在填充大数据时),所以在循环后设置模型一次。