gpt4 book ai didi

c++ - QTableView 输出另存为 .csv 或 .txt

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:10 26 4
gpt4 key购买 nike

我为 qt gui 编写了以下代码,以在 QTableView(面向模型)中查看查询输出。现在我想将此输出保存为 .csv 或 .txt 文件。有人建议使用 QTableWidget(面向项目),但我想坚持使用基于模型的方法。

void MainWindow::on_pushButton_clicked()
{
db = QSqlDatabase::addDatabase("QOCI");
db.setHostName("host");
db.setDatabaseName("db");
db.setUserName("uid");
db.setPassword("pw");
db.setPort(port);

QString MyQuery = ui->lineEdit->text();

if (db.open())
{
qDebug()<<QDateTime::currentDateTime()<<"QUERY DONE SUCCESSFULLY ";

this->model=new QSqlQueryModel();
model->setQuery(MyQuery);
ui->tableView->setModel(model);

}
else
{
qDebug()<<QDateTime::currentDateTime()<<"YOU FORGOT THE QUERY "<<db.lastError().text();
}

有什么指导方针吗???

最佳答案

您可以根据自己的实际需要进行定制:

// [Collect model data to QString]
QString textData;
int rows = model->rowCount();
int columns = model->columnCount();

for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {

textData += model->data(model->index(i,j)).toString();
textData += ", " // for .csv file format
}
textData += "\n"; // (optional: for new line segmentation)
}

// [Save to file] (header file <QFile> needed)
// .csv
QFile csvFile("test.csv");
if(csvFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) {

QTextStream out(&csvFile);
out << textData;

csvFile.close();
}

// .txt
QFile txtFile("test.txt");
if(txtFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) {

QTextStream out(&txtFile);
out << textData;

txtFile.close();
}

关于c++ - QTableView 输出另存为 .csv 或 .txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27353026/

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