web-dev-qa-db-ja.com

QFileDialogで選択したフィルターを設定するにはどうすればよいですか?

3つのフィルターを備えたファイルを開くダイアログがあります。

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

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

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

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

26
Greg K

このような:

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

docs はこれについて少し漠然としているので、私は推測によってこれを見つけました。

45
shoosh