2016-07-17 6 views
0

に応じて保存したファイルに拡張子を設定します。QFileDialog: - 私は私が働いているれている(QT 4.8で書かれたリッチテキストエディタの)次のコード持っているユーザー選択

bool TextEdit::fileSaveAs() 
{ 
    QString fn = QFileDialog::getSaveFileName(this, tr("Save as..."), 
               QString(), tr("ODT document (*.odt);;HTML-Files (*.htm *.html)"), 0, QFileDialog::DontUseNativeDialog); 

    if (fn.isEmpty()) 
     return false; 
    if (! fn.endsWith(".txt", Qt::CaseInsensitive) || (fn.endsWith(".odt", Qt::CaseInsensitive) || fn.endsWith(".htm", Qt::CaseInsensitive) || fn.endsWith(".html", Qt::CaseInsensitive))) 
     fn += ".odt"; // default 
    setCurrentFileName(fn); 
    return fileSave(); 
} 

* .odtと* .htmlの間の拡張子を選択することができます。ただし、デフォルトでは常に* .odt拡張子が設定されています(fn + = ".odt"を参照)。

http://funkyimg.com/i/2efhs.png

: 私はHTMLにこれを変更することができることを知って、私は、コード内で設定した強制拡張を取り除くと、文書を聞かせすることを目指して保存ダイアログウィンドウで選択した拡張子で保存されます

どうすればこのことができますか?誰かが、私がコーディングについての初心者だと考えて、実用的な例を私に提案することはできますか?

答えて

1

selectedfilter引数を指定して、別のコンストラクタを使用して、結果が

QString selectedFilter; 
QString fn = QFileDialog::getSaveFileName 
    (this, 
    tr("Save as..."), 
    QString(), 
    tr("ODT document (*.odt);;HTML-Files (*.htm *.html)"), 
    0, 
    QFileDialog::DontUseNativeDialog, 
    &selectedFilter); 
+0

あなたはselectedFIlterのQStringから選択したユーザを入力する内容のファイルを取得することができますでしょう。 QString :: contains()関数を使用して一致する文字列を確認します。 if(fn.contains( "。odt"))と同様に、 –

関連する問題