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

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

这会显示一个带有“JPEG”的对话框。被选为默认过滤器。我想按字母顺序排列过滤器列表,因此“所有文件”都是按字母顺序排列的。在列表中排在第一位。但是,如果我这样做,则“所有文件”是默认选择的过滤器 - 我不想要。

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

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

有帮助吗?

解决方案

像这样:

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

docs 对此有点模糊,所以我找到了这是通过猜测。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top