Как импортировать CSV-файл в QTableWidget

Я ученик программист, и я использую Qt для разработки интерфейса GUI для работы, и у меня возникли проблемы с выяснением того, как я должен заставить эту функцию импорта работать. Немного программистов, если вы это сделаете. Да, у меня есть это для кода:

void InjectionLocationsDialogExpanded::importCSVFile() { QString fileName = QFileDialog::getOpenFileName(this, ("Open File"), "/home", ("csv File(*.csv)")); QString data; QFile importedCSV(fileName); QStringList rowOfData; QStringList rowData; int tempint = 0; data.clear(); rowOfData.clear(); rowData.clear(); if (importedCSV.open(QFile::ReadOnly)) { data = importedCSV.readAll(); rowOfData = data.split("\n"); rowData = data.split(";"); importedCSV.close(); } qDebug() << data; for (int x = 0; x < rowOfData.size(); x++) { for (int y = 0; y tableWidgetInjectionLocationsExpandedDialog->columnCount(); y++) { ui->tableWidgetInjectionLocationsExpandedDialog->item(x,y)->setText(rowData[]); } } } 

Проблема здесь в том, что я не знаю, как получить набор текста каждого элемента в таблице, чтобы ссылаться на следующий элемент в rowData QStringList. Мне нужно увеличивать на одну позицию, но я не могу использовать int ++, потому что в конечном итоге будет искать элемент в QStringList, который не существует и вызывает ошибку сегментации. Я также не могу использовать цикл for для ограничения числа, которое мне нужно в поле местоположения здесь из-за текущей структуры циклов. Я просто не могу подумать о хорошей страtagsи для этого. Пожалуйста, оставляйте только конструктивные комментарии, так как меня интересует только изучение или выполнение этой задачи. Спасибо за прочтение!

Прежде всего, вам нужно будет позаботиться о окончаниях линии. Это означает, что ваш код может не быть независимым от платформы, если вы просто проверяете «\ n» в своем CSV-файле.

Если я получу то, что вы пытаетесь сделать, вам придется установить rowData внутри цикла for. Итак, что я буду делать тогда:

 rowOfData.clear(); rowData.clear(); if (importedCSV.open(QFile::ReadOnly)) { data = importedCSV.readAll(); rowOfData = data.split("\n"); importedCSV.close(); } for (int x = 0; x < rowOfData.size(); x++) { rowData = rowOfData.at(x).split(";"); for (int y = 0; y < rowData.size(); y++) { ui->tableWidgetInjectionLocationsExpandedDialog->item(x,y)->setText(rowData[y]); } } 

Думаю, это должно было сделать это. С наилучшими пожеланиями.