gpt4 book ai didi

c++ - 如何将 CSV 文件导入 QTableWidget

转载 作者:行者123 更新时间:2023-11-30 03:03:48 25 4
gpt4 key购买 nike

我是学生程序员,我正在使用 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 < ui->tableWidgetInjectionLocationsExpandedDialog->columnCount(); y++)
{
ui->tableWidgetInjectionLocationsExpandedDialog->item(x,y)->setText(rowData[]);
}
}
}

这里的问题是我不知道如何获取表中每个项目的settext 来引用rowData QStringList 中的下一个项目。我需要增加一个位置,但我不能使用 int++,因为它最终会在 QStringList 中查找不存在的项目并导致段错误。由于当前的 for 循环结构,我也不能使用 for 循环来限制我在此处位置字段中需要的数字。我只是想不出一个好的策略来解决这个问题。请只留下建设性的意见,因为我只对学习或完成这项任务感兴趣。感谢阅读!

最佳答案

首先,您需要处理行尾。这意味着如果您只检查 CSV 文件中的“\n”,您的代码可能不是平台独立的。

如果我明白您要执行的操作,则必须在 for 循环中设置 rowData。那么,我会怎么做:

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]);
}
}

我想这应该可以做到。最好的问候。

关于c++ - 如何将 CSV 文件导入 QTableWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9165183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com