我是自学者并且是 qt 的新手(我只想学习编写程序)。尝试将 csv 文件加载到 qtablewidget 但它用相同的数据覆盖所有列和行。我试图按照如何将 CSV 文件导入到 QTableWidget但我没有正确理解它。
代码:
QFile file("testData.txt");
QTextStream in(&file);
QStringList setDataInrow;
QStringList rowNumbers;
QString allLine;
if(file.open(QIODevice::ReadOnly)){
allLine=in.readAll();
rowNumbers=allLine.split("\n");
file.close();
}
QTableWidget *myTable=new QTableWidget();
myTable->setRowCount(rowNumbers.size());
for(int row=0;row<rowNumbers.count();row++)
{
setDataInrow=allLine.split(";");
for(int column=0;column<setDataInrow.count();column++){
myTable->setColumnCount(setDataInrow.size());
//myTable->item(row,column)->setText(setDataInrow[column]);
QTableWidgetItem *item=new QTableWidgetItem(setDataInrow[column]);
myTable->setItem(row,column,item);
}
}
qDebug()<<"Numbers of row needed:"<<"\n"<<rowNumbers<<"\n";
qDebug()<<"Set following data to each column as per row:"<<"\n"<<setDataInrow<<setDataInrow.size();
window->setCentralWidget(myTable);
window->show();
return app.exec();
}
我正在尝试加载:
John Kl;34;1335532;CA;0444344
Kuma jo;54;44432;NY;0322355
Lebal ho;24;44022;NY;0110004
它应该在 3 行和 5 列内加载,但它设置为 13 列。也许我无法正确地思考这一点。我需要一些代码示例的帮助,以便我可以更多地研究它。
由于我的英语不好(像我的代码一样糟糕 :))我截取了当前程序的屏幕截图,该程序没有按预期工作: