私は学生プログラマーで、仕事用の GUI インターフェイスを開発するために Qt を使用していますが、このインポート機能を機能させる方法を理解するのに苦労しています。あなたが望むなら、少しのプログラマーライターがブロックします。これまでのところ、コード用にこれを持っています:
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 < ui->tableWidgetInjectionLocationsExpandedDialog->columnCount(); y++)
{
ui->tableWidgetInjectionLocationsExpandedDialog->item(x,y)->setText(rowData[]);
}
}
}
ここでの問題は、テーブル内の各項目の settext を取得して、rowData QStringList 内の次の項目を参照する方法がわからないことです。1 つの場所をインクリメントする必要がありますが、int++ を使用することはできません。これは、存在しない QStringList 内の項目を最終的に検索し、セグメンテーション違反を引き起こすためです。現在の for ループ構造のため、ここで場所フィールドに必要な数を制限するために for ループを使用することもできません。これにアプローチするための良い戦略が思い浮かびません。私はこのタスクの学習または達成にのみ関心があるため、建設的なコメントのみを残してください。読んでくれてありがとう!