qt c++ QDialog 打开新文件
qt c++ QDialog open new file
经过将近一周的搜索和阅读qt文档,我仍然无法弄清楚如何使用QDialog在我的硬盘上创建一个NEW文件来写入数据。如果文件已经存在,我可以打开文件并写入数据,但如果我尝试创建一个新文件,我会收到一条消息,指出该文件不存在。如果我不使用 QDialog,我可以通过硬编码路径和文件名来创建一个新文件,但我希望能够选择文件位置,并获得习惯的消息;例如,该文件已经存在并询问是否可以覆盖它。这是我最近一次尝试的片段:
void MainWindow::on_pushButton_3_clicked()
{
QString filename = QFileDialog::getOpenFileName(
this,
tr("Sensor data"),
"C//",
"Text File (*.txt)"
);
QFile file(filename);
if (!file.open(QIODevice::ReadWrite))
{
QMessageBox::information(0,"info",file.errorString());
return;
}
QTextStream out(&file);
out<<"string1";
out<<"\n";
out<<"string2";
out<<"\n";
out<<"string3";
out<<"\n";
out<<"string4";
out<<"\n";
out<<"string5";
file.close();
}
QDialog 可以用于此目的吗?如果没有,请告诉我有关如何完成的信息。
提前致谢!
我认为你应该改用 getSaveFileName
在 Qt 示例中有名为 SDI 的项目,内容简单 window 和菜单以及您需要的所有文件:新建、打开、保存和另存为。
经过将近一周的搜索和阅读qt文档,我仍然无法弄清楚如何使用QDialog在我的硬盘上创建一个NEW文件来写入数据。如果文件已经存在,我可以打开文件并写入数据,但如果我尝试创建一个新文件,我会收到一条消息,指出该文件不存在。如果我不使用 QDialog,我可以通过硬编码路径和文件名来创建一个新文件,但我希望能够选择文件位置,并获得习惯的消息;例如,该文件已经存在并询问是否可以覆盖它。这是我最近一次尝试的片段:
void MainWindow::on_pushButton_3_clicked()
{
QString filename = QFileDialog::getOpenFileName(
this,
tr("Sensor data"),
"C//",
"Text File (*.txt)"
);
QFile file(filename);
if (!file.open(QIODevice::ReadWrite))
{
QMessageBox::information(0,"info",file.errorString());
return;
}
QTextStream out(&file);
out<<"string1";
out<<"\n";
out<<"string2";
out<<"\n";
out<<"string3";
out<<"\n";
out<<"string4";
out<<"\n";
out<<"string5";
file.close();
}
QDialog 可以用于此目的吗?如果没有,请告诉我有关如何完成的信息。
提前致谢!
我认为你应该改用 getSaveFileName
在 Qt 示例中有名为 SDI 的项目,内容简单 window 和菜单以及您需要的所有文件:新建、打开、保存和另存为。