我是自学者,也是qt的新手(我只是想学习编写程序)。 尝试将csv文件加载到qtablewidget,但它覆盖所有列和具有相同数据的行。我试图按照How to import a CSV file to a QTableWidget,但我没有得到它的正确。在qtablewidget中加载csv(为什么我的代码不能正常工作?)
代码:
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列 。也许我不能正确地想到这一点。我需要一些代码示例的帮助,以便我可以更多地了解它。
因为我的英语不是很好(吸收像我的代码:))我已如预期未工作当前程序的截图:
http://imageshack.us/a/img801/1601/le59.png
介意解释我该如何做到这一点? – user2715275
QTableWidgetItem * item = new QTableWidgetItem(rowCells [column]); myTable-> setItem(行,列项);只计算第一行。这似乎很容易,但我不知道为什么我完全坚持了解这一点。 – user2715275
首先,我想感谢您的帮助文章的快速回复。如果你不介意发布一个工作代码,以便我可以知道代码是如何工作的(也许这对我的糟糕的英语来说是个问题),那么对我来说,这可能会更有帮助。我在Qt/gui编程方面的经验只有几天,这就是为什么我总是被卡住(即使是简单的事情)。再次感谢您的帮助! – user2715275