qt将qvector中的数据取出并存入文件,每次按下存储按钮,创建一个文件并存储
时间: 2024-03-16 22:42:42 浏览: 68
利用QT创建文件并保存
可以通过信号槽机制和QFileDialog类实现每次按下存储按钮时创建一个文件并存储QVector中的数据。示例代码如下:
```cpp
// 在类的头文件中声明以下私有成员变量
private:
QVector<int> m_data; // 存储数据的QVector
int m_index = 1; // 文件名索引
// 在类的构造函数中连接信号槽
connect(ui->saveButton, &QPushButton::clicked, this, &MyWidget::onSaveButtonClicked);
// 实现槽函数
void MyWidget::onSaveButtonClicked()
{
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "", tr("Text Files (*.txt)"));
if (fileName.isEmpty()) {
return;
}
QFile outputFile(fileName);
if (!outputFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
return;
}
QTextStream outputStream(&outputFile);
// 将QVector中的数据写入文件
for (auto data : m_data) {
outputStream << data << "\n";
}
// 关闭文件
outputFile.close();
// 更新文件名索引
m_index++;
// 清空QVector中的数据
m_data.clear();
}
```
以上代码中,保存按钮的点击事件被连接到了onSaveButtonClicked()槽函数。在该槽函数中,首先使用QFileDialog类获取文件名并创建QFile对象。如果文件创建失败,则直接返回。接下来,使用QTextStream类将QVector中的数据逐个写入文件,最后关闭文件并更新文件名索引。在每次保存完成后,清空QVector中的数据,等待下一次存储。
阅读全文