如何在QFileDialog上设置选定的过滤器?

Gre*_*g K 28 c++ qt qt4

我有一个带有三个过滤器的打开文件对话框:

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

这将显示一个对话框,其中"JPEG"被选为默认过滤器.我想按字母顺序放置过滤器列表,因此"所有文件"在列表中排在第一位.但是,如果我这样做,"所有文件"是默认选择的过滤器 - 我不想要.

我可以为此对话框设置默认选定的过滤器,还是必须使用第一个指定的过滤器?

我尝试指定第5个参数(QString)来设置默认选择的过滤器,但这不起作用.我认为这可能只用于检索用户设置的过滤器.

sho*_*osh 46

像这样:

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

文档是有点模糊这一点,所以我猜测通过发现了这一点.