2012-06-20 44 views
0

我有一個程序,我在Windows中使用這段代碼在Windows上編寫,但在Linux中編譯時,保存的文件沒有.l2p擴展名。使用自定義擴展名保存文件

void MainWindow::on_saveButton_clicked() 
{ 
    QString fileName = QFileDialog::getSaveFileName(this, 
     tr("Salvesta Projekt"), "", 
     tr("Latid Pindalaks (*.l2p)")); 

    if (fileName.isEmpty()) 
     return; 
    ... 

我該怎麼辦?

+0

是什麼,你得到的最終結果? –

+0

它顯示保存對話框,它看起來很好,但它保存的文件沒有擴展名。 –

+3

你想強制的行爲正是我討厭的(d)關於Windows應用程序。文件擴展名應由用戶決定或不使用(它們是文件名的一部分,由用戶選擇)。您可以讓用戶在「Latid Pindalaks(\ *。l2p)」和「所有文件(\ *)」之間進行選擇,並且只在選擇第一個時才強制執行擴展。但我不確定Qt是否提供了有關在對話框的組合框中選擇了哪一個的信息。 – leemes

回答

0

如果文件名沒有你需要的擴展,只需添加:

QString fileName = QFileDialog::getSaveFileName(this, 
    tr("Salvesta Projekt"), "", 
    tr("Latid Pindalaks (*.l2p)")); 

if (fileName.isEmpty()) 
    return; 

if (!fileName.endsWith(".l2p")) 
    fileName += ".l2p"; 
相關問題