2012-02-14 33 views
3

私はそうのようなQFileDialogを開くQDialogを持っている:QFileDialogに上書きを促すメッセージを表示させるにはどうすればよいですか?

QFileDialog fd(this); 
fd.setFileMode(QFileDialog::AnyFile); 

if (fd.exec()) { 
    // save data to a file 
} 

残念ながら、the default behaviorはそれほどデフォルトでは、と私は、そのファイルを選択した場合、ファイルダイアログが上書きについて私に要求しませんではないようですもう存在している。最初にsetConfirmOverwrite(true)またはsetOption(QFileDialog::DontConfirmOverwrite, false)と呼んでも役に立ちません。私はUbuntu 11.04とWindows XPの両方でQt 4.7.3と4.7.4の両方でこれをテストしました。

私は周りを見渡して、this bug reportを見つけました。 QFileDialog::getSaveFileName()はこの問題を抱えていましたが、Qt 4.7.3が出てくる前にMaemoに特有で、よく修正されました。アプリケーションでそのメソッドを使用するとうまくいき、ファイルを上書きするように求められます。 (私は無関係な理由のためにgetSaveFileName()を使用したくありません)

私はそれらのために働いていないと不平を言う人は誰も見つかりません。私は何か間違っているのですか、これはバグですか?私はそれは、それが単なるOpenダイアログで、プロンプトが意味をなさないのかどうかを知らないダイアログのせいかもしれないと思うが、Save-dialog(それはconfirm-overwriteオプションの設定を超えて、それは失敗します)、ドキュメントとなりますが、デフォルトでプロンプトが表示されます。

+1

私はQt 4.8.0と同じ問題があります –

答えて

5

開いているときにファイルを上書きしているとは思わないので、ダイアログが保存モードになっていることも確認してください。コード例でfd.setAcceptMode(QFileDialog::AcceptSave);を呼び出すことによってこれを行うことができます。 QFileDialog::acceptModeを参照してください。

+0

これは完璧です、ありがとう!私がそれを逃した方法を知らない。私はあなたのSOアカウントを登録し、周りにこだわってほしい:) –

関連する問題