QtのQFileDialog - 唯一の静的関数を持つネイティブのダイアログ?

StackOverflow https://stackoverflow.com/questions/2609119

  •  25-09-2019
  •  | 
  •  

質問

私は単純にファイルを保存しようとしています。しかし、私は(setDefaultSuffixは()した)デフォルトの接尾辞を取得し、自動的にサフィックスなしで入力されたファイル名を必要とします。

私はむしろ完全にこれだけのために保存ダイアログネイティブを失わないと思います。それは完全にネイティブフック(DontUseNativeDialogオプションもそれの場合はfalseを無視して)をバイパスしてEXEC()、QDialogからオーバーロードされていません。

ユーザーが上書きしたくなかった...そしてそれはちょうど醜いかどうます。

それはそこにはない場合、私はキャッチし、すぐにデフォルトの接尾辞注入することができ、いくつかの信号はありますか?それはネイティブダイアログなので、私は、ない推測してます。

私はフィルタと間違っをやっているものはありますか?私は1つのフィルタのみの選択肢を持っています。これは、その拡張子を使用する必要があります。

これはかなりラメようです。ダイアログと単純に入力する手間を省く起動「テスト」拡張子のファイルにつながることはありません。 "テスト"、はい。 「テスト」では決してありません。それは、彼らが負荷を打ったときに、本当にユーザーを混乱させるだろうと、彼らは単に保存したファイルを見ることができません。

私はQtのクロスプラットフォームの一部は私に最小公分母ファイルダイアログの機能を与えていると思う?

役に立ちましたか?

解決

あなたはQtのソースコードを見れば、はい、それだけで静的な関数はネイティブファイルダイアログを使用していることは明白です。それは、ネイティブのダイアログに、他の方法を取得することはできません、残念ながら...

他のヒント

は、静的関数でフィルタオプションを試してみましたか? [編集:おっと、あなたが既に持っていることに気づい]

私はちょうど例えば、この自分自身を試みたが、物事はかなり合理的であるように見えるます:

QString filter = "Text files (*.txt)";
QString selectedFilter;
QString filename = QFileDialog::getSaveFileName(0, "", "", filter, &selectedFilter);
のテストのダイアログに戻り保存のtest.txtのの中に入る。
のtest..txt の名前を付けて保存]ダイアログに戻りにのテスト。を入力する。
のtest.foo の名前を付けて保存]ダイアログに戻りにのtest.foo の入力する。

その名前を持つ既存のファイルが既に存在する場合、これらはすべて、適切な上書きダイアログを表示します。

私はのテストの得ることができる唯一の方法は、任意のサフィックスなし、引用符(の "テスト" の)とそれを囲むことにより、またはの*最初の入りです。 * の(それはすべてのファイルを表示するようになります)、次にのテストのを入力します。 (1風変わりですがそのselectedFilterはまだそれを使用していない場合でも、ダイアログに示すフィルタが含まれています)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top