2009-10-22 17 views
22

Tengo un archivo de diálogo abierto con tres filtros:¿Cómo establecer el filtro seleccionado en QFileDialog?

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

Esto muestra un cuadro de diálogo con "JPEG" seleccionado como el filtro predeterminado. Quería poner la lista de filtros en orden alfabético para que "Todos los archivos" fuera el primero en la lista. Sin embargo, si hago esto, "Todos los archivos" es el filtro seleccionado por defecto, que no quiero.

¿Puedo establecer el filtro seleccionado por defecto para este diálogo o tengo que ir con el primer filtro especificado?

He intentado especificar un 5to argumento (QString) para establecer el filtro seleccionado por defecto pero esto no funcionó. Creo que esto solo se puede usar para recuperar el filtro establecido por el usuario.

Respuesta

36

De esta manera:

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

que coinciden en que los documentos (https://doc.qt.io/qt-4.8/qfiledialog.html#getOpenFileName) son un poco vago sobre este punto, pero sólo me tomó un intento de adivinar cómo hacer esto bien.

Este es un caso en el que es más rápido intentarlo que hacer una pregunta.

+0

Gracias, traté de alinear el 5to arg –

+4

En serio, no hay necesidad de ser duro ... – DawidPi

Cuestiones relacionadas