2012-06-20 43 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"; 
相关问题