C++ 使用自定义扩展名保存文件
我有一个在Windows中编写的程序,它的代码可以在Windows上运行,但是在linux中编译时,保存的文件没有.l2p扩展名C++ 使用自定义扩展名保存文件,c++,linux,qt,save,file-extension,C++,Linux,Qt,Save,File Extension,我有一个在Windows中编写的程序,它的代码可以在Windows上运行,但是在linux中编译时,保存的文件没有.l2p扩展名 void MainWindow::on_saveButton_clicked() { QString fileName = QFileDialog::getSaveFileName(this, tr("Salvesta Projekt"), "", tr("Latid Pindalaks (*.l2p)"));
void MainWindow::on_saveButton_clicked()
{
QString fileName = QFileDialog::getSaveFileName(this,
tr("Salvesta Projekt"), "",
tr("Latid Pindalaks (*.l2p)"));
if (fileName.isEmpty())
return;
...
我该怎么办?如果文件名没有您需要的扩展名,只需添加它:
QString fileName = QFileDialog::getSaveFileName(this,
tr("Salvesta Projekt"), "",
tr("Latid Pindalaks (*.l2p)"));
if (fileName.isEmpty())
return;
if (!fileName.endsWith(".l2p"))
fileName += ".l2p";
你得到的最终结果是什么?它显示了“保存”对话框,看起来一切正常,但它保存的文件没有扩展名。你想要强制的行为正是我讨厌的windows应用程序的行为。文件扩展名应由用户决定是否使用(它们是文件名的一部分,由用户选择)。您可以让用户在“Latid Pindalaks(*.l2p)”和“所有文件(*)之间进行选择,并且只有在用户选择第一个扩展名时才强制使用扩展名。但是我不确定Qt是否提供了关于在对话框的组合框中选择了哪一个的信息。