最近我正在研究一个gui应用程序&我想将QTableView的数据保存在.csv或.txt文件中。我使用了指导received during this question,这使我思考如果反过来也是可能的;即,如果可以从.csv或.txt文件填充QTableView。我再次希望继续使用基于模型的设计,例如QTableView而不是基于项目的QTableWidget。
任何代码段或教程文档都会非常有用。
答案 0 :(得分:4)
考虑一个test.csv
文件(它可以由任何文本编辑器生成):
背后的文本流是(如果通过编程生成):
1,2,3,\n4,5,6,\n7,8,9,\n10,11,12,\n13,14,15,
如果在Microsoft Office Excel中打开,它可能如下所示:
要将此.csv
文件读取到QTableView
的模型:
QStandardItemModel *model = new QStandardItemModel;
QFile file("test.csv");
if (file.open(QIODevice::ReadOnly)) {
int lineindex = 0; // file line counter
QTextStream in(&file); // read to text stream
while (!in.atEnd()) {
// read one line from textstream(separated by "\n")
QString fileLine = in.readLine();
// parse the read line into separate pieces(tokens) with "," as the delimiter
QStringList lineToken = fileLine.split(",", QString::SkipEmptyParts);
// load parsed data to model accordingly
for (int j = 0; j < lineToken.size(); j++) {
QString value = lineToken.at(j);
QStandardItem *item = new QStandardItem(value);
model->setItem(lineindex, j, item);
}
lineindex++;
}
file.close();
}
(您可以操纵代码以满足您的表格格式)