QTableWidget
からデータを読み込み、CSVファイルに保存しようとしています。QTableWidgetからシリアル化する際に、CSVファイルの不要な文字
ファイルに保存された値は正しいですが、すべての行の最初の列には最初に不要な文字があります。保存したファイルは次のようになり
void Task::on_button_Export_clicked()
{
QString fileName = QFileDialog::getSaveFileName(this,tr("Export Task List"), "",tr("CSV Files (*.csv)"));
if (fileName.isEmpty())
return;
else
{
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly))
{
QMessageBox::information(this, tr("Unable to open file"),
file.errorString());
return;
}
QDataStream out(&file);
out.setVersion(QDataStream::Qt_5_4);
int rowCount = ui->tableWidget->rowCount();
int colCount = ui->tableWidget->columnCount();
for (int i = 0; i < rowCount; i++)
{
QString str(QString::null);
/* if (i > 0)
{
str = "\n";
}*/
for (int j = 0; j < colCount; j++)
{
if (j > 0)
{
str += ",";
}
QTableWidgetItem* item = ui->tableWidget->item(i,j);
str += item->data(Qt::DisplayRole).toString();
}
str += "\n";
out << str;
}
}
}
::私はQtの5.4.0を使用しています
ÎDPC Task
ÞMain Task
ÌWorkLoop
ÐWorkLoop
ÌIST0
ÊIST1
ÆIST2
は、ここに私のコードです。
ここにお手伝いいただければ幸いです。
QString str(QString :: null); - これは何ですか? 'QString str;'と書くだけです。ちなみに、文字列を構築するための 'QTextStream'クラスがあります。 –
まず、文字列strを試しました。私の推測では、いくつかのガーバッグ値を取得していたので、後でそれをQString str(QString :: null)に変更してヌルで初期化しました。 –