我有一个包含三个过滤器的打开文件对话框:
QString fileName = QFileDialog::getOpenFileName(
this,
title,
directory,
tr("JPEG (*.jpg *.jpeg);; TIFF (*.tif);; All files (*.*)")
);
这将显示一个选中“JPEG”作为默认过滤器的对话框。我想按字母顺序排列过滤器列表,因此“所有文件”在列表中排在第一位。但是,如果我这样做,“所有文件”是默认选择的过滤器 - 我不想要。
我可以为此对话框设置默认选定的过滤器,还是必须使用第一个指定的过滤器?
我尝试指定第5个参数(QString
)来设置默认选定的过滤器,但这不起作用。我认为这可能只用于检索用户设置的过滤器。
答案 0 :(得分:44)
像这样:
QString selfilter = tr("JPEG (*.jpg *.jpeg)");
QString fileName = QFileDialog::getOpenFileName(
this,
title,
directory,
tr("All files (*.*);;JPEG (*.jpg *.jpeg);;TIFF (*.tif)" ),
&selfilter
);
docs对此有点模糊,所以我通过猜测发现了这一点。
答案 1 :(得分:0)
这是所有支持QT的图像格式的字符串。
"All files (*.*);;BMP (*.bmp);;CUR (*.cur);;GIF (*.gif);;ICNS (*.icns);;ICO (*.ico);;JPEG (*.jpeg);;JPG (*.jpg);;PBM (*.pbm);;PGM (*.pgm);;PNG (*.png);;PPM (*.ppm);;SVG (*.svg);;SVGZ (*.svgz);;TGA (*.tga);;TIF (*.tif);;TIFF (*.tiff);;WBMP (*.wbmp);;WEBP (*.webp);;XBM (*.xbm);;XPM (*.xpm)"