2009-10-22 5 views
22

私は3つのフィルタを備えたオープンファイルダイアログを持っている:QFileDialogで選択したフィルタを設定するには?

QString fileName = QFileDialog::getOpenFileName(
     this, 
     title, 
     directory, 
     tr("JPEG (*.jpg *.jpeg);; TIFF (*.tif);; All files (*.*)") 
); 

これがデフォルトのフィルタとして選択し、「JPEG」とダイアログが表示されます。フィルタリストをアルファベット順に並べると、「すべてのファイル」がリストの最初に表示されました。しかし、これを行うと、「すべてのファイル」がデフォルトの選択されたフィルタになります。

このダイアログにデフォルトで選択されているフィルタを設定することはできますか、最初に指定したフィルタを使用する必要がありますか?

デフォルトの選択されたフィルタを設定するために5番目の引数(QString)を指定しようとしましたが、これは機能しませんでした。私はこれがユーザーによって設定されたフィルタを取得するためにのみ使用されるかもしれないと思います。このよう

答えて

36

は:

QString selfilter = tr("JPEG (*.jpg *.jpeg)"); 
QString fileName = QFileDialog::getOpenFileName(
     this, 
     title, 
     directory, 
     tr("All files (*.*);;JPEG (*.jpg *.jpeg);;TIFF (*.tif)"), 
     &selfilter 
); 

私はドキュメント(https://doc.qt.io/qt-4.8/qfiledialog.html#getOpenFileNameが)この時点について、少し曖昧であることを同意するが、それは一つだけがこの権利を行う方法を推測しよう連れて行ってくれました。

これは、質問するよりも試してみるほうが速い場合の1つです。

+0

ありがとう、私は第5引数をインライン化しようとしました –

+4

真剣に、厳しい必要はありません... – DawidPi

関連する問題