【发布时间】:2013-08-26 05:08:08
【问题描述】:
我是自学者,刚接触 qt(我只想学写程序)。 试图将 csv 文件加载到 qtablewidget 但它用相同的数据覆盖所有列和行。我尝试关注How to import a CSV file to a 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 列。也许我无法正确地思考这一点。我需要一些代码示例的帮助,以便我可以更多地研究它。
由于我的英语不好(糟透了我的代码 :))我截取了当前程序的屏幕截图,该程序无法按预期运行:
【问题讨论】:
标签: qt qtablewidget qtablewidgetitem