我正在编写一个Qt GUI C ++程序,我计划填充表格视图,例如3X2表格视图。字段中的文本来自 .csv 文件。随着文本,还会有一个小图标/图像。
要了解它可能看起来有点像UI;
现在将文字添加到我已使用的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();
}
现在如何执行添加图像部分???
答案 0 :(得分:4)
您可以使用标准方法:
item->setIcon(QIcon("path"));
或使用索引执行此操作(使用setData()
和Qt::DecorationRole
)
添加后,您可以调用resizeRowsToContents()
在您的单元格中显示完整图片。
此外,我注意到您在每次迭代中都设置了模型。这没错,但效率非常低(特别是在填充大数据时),所以在循环后设置模型一次。