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 和菜单以及您需要的所有文件:新建、打开、保存和另存为。