En esta página

QFileDialog Class

Proporciona un cuadro de diálogo que permite a los usuarios seleccionar archivos o directorios. Más...

Cabecera: #include <QFileDialog>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QDialog

Tipos Públicos

enum AcceptMode { AcceptOpen, AcceptSave }
enum DialogLabel { LookIn, FileName, FileType, Accept, Reject }
enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles }
enum Option { ShowDirsOnly, DontResolveSymlinks, DontConfirmOverwrite, DontUseNativeDialog, ReadOnly, …, DontUseCustomDirectoryIcons }
flags Options
enum ViewMode { Detail, List }

Propiedades

Funciones públicas

QFileDialog(QWidget *parent, Qt::WindowFlags flags)
QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())
virtual ~QFileDialog()
QFileDialog::AcceptMode acceptMode() const
QString defaultSuffix() const
QDir directory() const
QUrl directoryUrl() const
QFileDialog::FileMode fileMode() const
QDir::Filters filter() const
QStringList history() const
QAbstractFileIconProvider *iconProvider() const
QAbstractItemDelegate *itemDelegate() const
QString labelText(QFileDialog::DialogLabel label) const
QStringList mimeTypeFilters() const
QStringList nameFilters() const
void open(QObject *receiver, const char *member)
QFileDialog::Options options() const
QAbstractProxyModel *proxyModel() const
bool restoreState(const QByteArray &state)
QByteArray saveState() const
void selectFile(const QString &filename)
void selectMimeTypeFilter(const QString &filter)
void selectNameFilter(const QString &filter)
void selectUrl(const QUrl &url)
QStringList selectedFiles() const
QString selectedMimeTypeFilter() const
QString selectedNameFilter() const
QList<QUrl> selectedUrls() const
void setAcceptMode(QFileDialog::AcceptMode mode)
void setDefaultSuffix(const QString &suffix)
void setDirectory(const QString &directory)
void setDirectory(const QDir &directory)
void setDirectoryUrl(const QUrl &directory)
void setFileMode(QFileDialog::FileMode mode)
void setFilter(QDir::Filters filters)
void setHistory(const QStringList &paths)
void setIconProvider(QAbstractFileIconProvider *provider)
void setItemDelegate(QAbstractItemDelegate *delegate)
void setLabelText(QFileDialog::DialogLabel label, const QString &text)
void setMimeTypeFilters(const QStringList &filters)
void setNameFilter(const QString &filter)
void setNameFilters(const QStringList &filters)
void setOption(QFileDialog::Option option, bool on = true)
void setOptions(QFileDialog::Options options)
void setProxyModel(QAbstractProxyModel *proxyModel)
void setSidebarUrls(const QList<QUrl> &urls)
void setSupportedSchemes(const QStringList &schemes)
void setViewMode(QFileDialog::ViewMode mode)
QList<QUrl> sidebarUrls() const
QStringList supportedSchemes() const
bool testOption(QFileDialog::Option option) const
QFileDialog::ViewMode viewMode() const

Funciones públicas reimplementadas

virtual void setVisible(bool visible) override

Señales

void currentChanged(const QString &path)
void currentUrlChanged(const QUrl &url)
void directoryEntered(const QString &directory)
void directoryUrlEntered(const QUrl &directory)
void fileSelected(const QString &file)
void filesSelected(const QStringList &selected)
void filterSelected(const QString &filter)
void urlSelected(const QUrl &url)
void urlsSelected(const QList<QUrl> &urls)

Miembros públicos estáticos

QString getExistingDirectory(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), QFileDialog::Options options = ShowDirsOnly)
QUrl getExistingDirectoryUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), QFileDialog::Options options = ShowDirsOnly, const QStringList &supportedSchemes = QStringList())
void getOpenFileContent(const QString &nameFilter, const std::function<void (const QString &, const QByteArray &)> &fileOpenCompleted, QWidget *parent = nullptr)
QString getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
QStringList getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
QUrl getOpenFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())
QList<QUrl> getOpenFileUrls(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())
QString getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
QUrl getSaveFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())
void saveFileContent(const QByteArray &fileContent, const QString &fileNameHint, QWidget *parent = nullptr)

Funciones protegidas reimplementadas

virtual void accept() override
virtual void changeEvent(QEvent *e) override
virtual void done(int result) override

Descripción Detallada

La clase QFileDialog permite a los usuarios navegar por el sistema de ficheros y seleccionar uno o más ficheros o directorios.

Abrir diálogo de archivo

QFileDialog se utiliza comúnmente para pedir a los usuarios que abran o guarden archivos, o para seleccionar directorios. La forma más sencilla de utilizar QFileDialog es a través de sus funciones estáticas, como getOpenFileName().

fileName = QFileDialog::getOpenFileName(this,
    tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));

En este ejemplo, se crea un QFileDialog modal utilizando una función estática. El diálogo inicialmente muestra el contenido del directorio /home/jana y muestra los archivos que coinciden con los patrones en "Image Files (*.png *.jpg *.bmp)". El título de la ventana es Open Image.

Filtros de archivos

Filtrado de archivos por nombre o extensión

Para filtrar los archivos mostrados por nombre o extensión, utilice las funciones setNameFilter() o setNameFilters(). Se pueden especificar varios filtros separándolos con dos puntos y coma (;;):

QFileDialog dialog(this);
dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"));
dialog.exec();

Filtrar ficheros por tipo MIME

Para filtrar los ficheros mostrados por tipo MIME, utilice la función setMimeTypeFilters():

QStringList mimeTypeFilters({"image/jpeg", // will show "JPEG image (*.jpeg *.jpg *.jpe)
                             "image/png",  // will show "PNG image (*.png)"
                             "application/octet-stream" // will show "All files (*)"
                            });

QFileDialog dialog(this);
dialog.setMimeTypeFilters(mimeTypeFilters);
dialog.exec();

Distinción entre mayúsculas y minúsculas en los filtros de archivos

Dependiendo de la plataforma de destino, los filtros de archivos pueden distinguir entre mayúsculas y minúsculas.

Modos de archivo

QFileDialog soporta varios modos de archivo, que determinan lo que el usuario puede seleccionar:

QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::AnyFile);
  • AnyFile: El usuario puede seleccionar cualquier archivo, incluyendo archivos que no existen (útil para diálogos Save As ).
  • ExistingFile: El usuario debe seleccionar un archivo existente.
  • Directorio: El usuario puede seleccionar un directorio.

Véase el enum QFileDialog::FileMode para la lista completa de modos.

La propiedad fileMode contiene el modo de operación actual. Utilice setFileMode() para cambiarlo.

Modos de vista

QFileDialog proporciona dos modos de vista:

  • Lista: Muestra los archivos y directorios como una simple lista.
  • Detalle: Muestra información adicional como el tamaño del fichero y la fecha de modificación.

Establezca el modo de vista con setViewMode():

dialog.setViewMode(QFileDialog::Detail);

Recuperar los ficheros seleccionados

Una vez aceptado el diálogo, utilice selectedFiles() para recuperar la selección del usuario:

QStringList fileNames;
if (dialog.exec())
    fileNames = dialog.selectedFiles();

El directorio de trabajo del diálogo puede establecerse con setDirectory(). Puede preseleccionar un archivo con selectFile().

Notas sobre la plataforma

Por defecto, QFileDialog utiliza el diálogo de archivos nativo de la plataforma si está disponible. En este caso, algunas APIs específicas de widgets (como layout() y itemDelegate()) pueden devolver null. Además, no todas las plataformas muestran los diálogos de archivo con una barra de título, por lo que el texto de la leyenda puede no ser visible.

Para forzar el uso del diálogo basado en widgets Qt, establezca la opción DontUseNativeDialog o el atributo de aplicación AA_DontUseNativeDialogs.

Véase también QDir, QFileInfo, QFile, QColorDialog, QFontDialog, y Ejemplo de diálogos estándar.

Documentación de tipos de miembros

enum QFileDialog::AcceptMode

ConstanteValor
QFileDialog::AcceptOpen0
QFileDialog::AcceptSave1

enum QFileDialog::DialogLabel

ConstanteValor
QFileDialog::LookIn0
QFileDialog::FileName1
QFileDialog::FileType2
QFileDialog::Accept3
QFileDialog::Reject4

enum QFileDialog::FileMode

Este enum se utiliza para indicar lo que el usuario puede seleccionar en el diálogo de archivo; es decir, lo que devuelve el diálogo si el usuario hace clic en Aceptar.

ConstanteValorDescripción
QFileDialog::AnyFile0El nombre de un fichero, tanto si existe como si no.
QFileDialog::ExistingFile1El nombre de un único fichero existente.
QFileDialog::Directory2El nombre de un directorio. Se muestran tanto ficheros como directorios. Sin embargo, el cuadro de diálogo de archivos nativo de Windows no permite mostrar archivos en el selector de directorios.
QFileDialog::ExistingFiles3Los nombres de cero o más ficheros existentes.

Véase también setFileMode().

enum QFileDialog::Option
flags QFileDialog::Opciones

Opciones que influyen en el comportamiento del diálogo.

ConstanteValorDescripción
QFileDialog::ShowDirsOnly0x00000001Mostrar sólo directorios. Por defecto, se muestran tanto los archivos como los directorios.
This option is only effective in the Directory file mode.
QFileDialog::DontResolveSymlinks0x00000002No resolver enlaces simbólicos. Por defecto, los enlaces simbólicos se resuelven.
QFileDialog::DontConfirmOverwrite0x00000004No pedir confirmación si se selecciona un archivo existente. Por defecto, se pide confirmación.
This option is only effective if acceptMode is AcceptSave). It is furthermore not used on macOS for native file dialogs.
QFileDialog::DontUseNativeDialog0x00000008No utilice un diálogo de archivos nativo de la plataforma, sino el basado en widgets que proporciona Qt.
By default, a native file dialog is shown unless you use a subclass of QFileDialog that contains the Q_OBJECT macro, the global AA_DontUseNativeDialogs application attribute is set, or the platform does not have a native dialog of the type that you require.
Para que la opción sea efectiva, debe establecerla antes de cambiar otras propiedades del diálogo, o de mostrar el diálogo.
QFileDialog::ReadOnly0x00000010Indica que el modelo es de sólo lectura.
QFileDialog::HideNameFilterDetails0x00000020Indica si los detalles del filtro de nombre de fichero están ocultos o no.
QFileDialog::DontUseCustomDirectoryIcons0x00000040Utilice siempre el icono de directorio predeterminado.
Algunas plataformas permiten al usuario establecer un icono diferente, pero la búsqueda de iconos personalizados podría causar importantes problemas de rendimiento en unidades de red o extraíbles.
Setting this will enable the DontUseCustomDirectoryIcons option in iconProvider().
Este valor enum se añadió en Qt 5.2.

El tipo Options es un typedef para QFlags<Option>. Almacena una combinación OR de valores Option.

Ver también options y testOption.

enum QFileDialog::ViewMode

Este enum describe el modo de visualización del diálogo de archivos; es decir, qué información se muestra sobre cada archivo.

ConstanteValorDescripción
QFileDialog::Detail0Muestra un icono, un nombre y detalles para cada elemento del directorio.
QFileDialog::List1Muestra sólo un icono y un nombre para cada elemento del directorio.

Véase también setViewMode().

Propiedad Documentación

acceptMode : AcceptMode

Esta propiedad contiene el modo de aceptación del diálogo.

El modo de acción define si el diálogo es para abrir o guardar archivos.

Por defecto, esta propiedad está establecida en AcceptOpen.

Funciones de acceso:

QFileDialog::AcceptMode acceptMode() const
void setAcceptMode(QFileDialog::AcceptMode mode)

Véase también AcceptMode.

defaultSuffix : QString

Sufijo que se añade al nombre de archivo si no se ha especificado ningún otro sufijo.

Esta propiedad especifica una cadena que se añade al nombre de archivo si aún no tiene sufijo. El sufijo se utiliza normalmente para indicar el tipo de archivo (por ejemplo, "txt" indica un archivo de texto).

Si el primer carácter es un punto ('.'), se elimina.

Funciones de acceso:

QString defaultSuffix() const
void setDefaultSuffix(const QString &suffix)

fileMode : FileMode

Esta propiedad contiene el modo de archivo del diálogo.

El modo de archivo define el número y tipo de elementos que se espera que el usuario seleccione en el diálogo.

Por defecto, esta propiedad se establece en AnyFile.

Esta función establece las etiquetas para FileName y Accept DialogLabel s. Es posible establecer texto personalizado después de la llamada a setFileMode().

Funciones de acceso:

QFileDialog::FileMode fileMode() const
void setFileMode(QFileDialog::FileMode mode)

Véase también FileMode.

options : Options

Esta propiedad contiene las distintas opciones que afectan al aspecto del diálogo.

Por defecto, todas las opciones están desactivadas.

Las opciones (en particular la opción DontUseNativeDialog ) deben establecerse antes de cambiar las propiedades del diálogo o de mostrarlo.

Configurar opciones mientras el diálogo está visible no garantiza que tenga un efecto inmediato en el diálogo (dependiendo de la opción y de la plataforma).

Establecer opciones después de cambiar otras propiedades puede hacer que estos valores no tengan efecto.

Funciones de acceso:

QFileDialog::Options options() const
void setOptions(QFileDialog::Options options)

Véase también setOption() y testOption().

supportedSchemes : QStringList

Esta propiedad contiene los esquemas de URL a los que el diálogo de archivo debe permitir navegar.

Establecer esta propiedad permite restringir el tipo de URLs que el usuario puede seleccionar. Es una forma de que la aplicación declare los protocolos que soporta para obtener el contenido del archivo. Una lista vacía significa que no se aplica ninguna restricción (por defecto). El soporte para archivos locales (esquema "file") está implícito y siempre activado; no es necesario incluirlo en la restricción.

Funciones de acceso:

QStringList supportedSchemes() const
void setSupportedSchemes(const QStringList &schemes)

viewMode : ViewMode

Esta propiedad establece el modo en que se muestran los archivos y directorios en el diálogo.

Por defecto, se utiliza el modo Detail para mostrar información sobre archivos y directorios.

Funciones de acceso:

QFileDialog::ViewMode viewMode() const
void setViewMode(QFileDialog::ViewMode mode)

Véase también ViewMode.

Documentación de las funciones miembro

QFileDialog::QFileDialog(QWidget *parent, Qt::WindowFlags flags)

Construye un diálogo de archivo con la dirección parent y el widget flags.

[explicit] QFileDialog::QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())

Construye un diálogo de archivos con los datos parent y caption que muestra inicialmente el contenido del directorio directory. El contenido del directorio se filtra antes de mostrarse en el diálogo, utilizando una lista de filtros separada por punto y coma especificada en filter.

[virtual noexcept] QFileDialog::~QFileDialog()

Destruye el diálogo de archivo.

[override virtual protected] void QFileDialog::accept()

Reimplementa: QDialog::accept().

[override virtual protected] void QFileDialog::changeEvent(QEvent *e)

Reimplementa: QWidget::changeEvent(QEvent *event).

[signal] void QFileDialog::currentChanged(const QString &path)

Cuando cambia el archivo actual para operaciones locales, se emite esta señal con el nuevo nombre de archivo como parámetro path.

Véase también filesSelected().

[signal] void QFileDialog::currentUrlChanged(const QUrl &url)

Cuando cambia el archivo actual, se emite esta señal con la nueva URL del archivo como parámetro url.

Véase también urlsSelected().

QDir QFileDialog::directory() const

Devuelve el directorio que se está mostrando actualmente en el diálogo.

Véase también setDirectory().

[signal] void QFileDialog::directoryEntered(const QString &directory)

Esta señal se emite para las operaciones locales cuando el usuario introduce un directory.

QUrl QFileDialog::directoryUrl() const

Devuelve la url del directorio que se está mostrando actualmente en el diálogo.

Véase también setDirectoryUrl().

[signal] void QFileDialog::directoryUrlEntered(const QUrl &directory)

Esta señal se emite cuando el usuario introduce un directory.

[override virtual protected] void QFileDialog::done(int result)

Reimplementa: QDialog::done(int r).

[signal] void QFileDialog::fileSelected(const QString &file)

Cuando cambia la selección para las operaciones locales y se acepta el diálogo, se emite esta señal con la file seleccionada (posiblemente vacía).

Véase también currentChanged() y QDialog::Accepted.

[signal] void QFileDialog::filesSelected(const QStringList &selected)

Cuando cambia la selección para operaciones locales y se acepta el diálogo, se emite esta señal con la lista (posiblemente vacía) de archivos selected.

Véase también currentChanged() y QDialog::Accepted.

QDir::Filters QFileDialog::filter() const

Devuelve el filtro que se utiliza al mostrar los archivos.

Véase también setFilter().

[signal] void QFileDialog::filterSelected(const QString &filter)

Esta señal se emite cuando el usuario selecciona un filter.

[static] QString QFileDialog::getExistingDirectory(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), QFileDialog::Options options = ShowDirsOnly)

Esta es una función estática de conveniencia que devuelve un directorio existente seleccionado por el usuario.

QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
                                                "/home",
                                                QFileDialog::ShowDirsOnly
                                                | QFileDialog::DontResolveSymlinks);

Esta función crea un diálogo modal de archivos con el widget parent dado. Si parent no es nullptr, el diálogo se muestra centrado sobre el widget padre.

El directorio de trabajo del diálogo se establece en dir, y el título se establece en caption. Cualquiera de ellos puede ser una cadena vacía, en cuyo caso se utilizan el directorio actual y un título por defecto respectivamente.

El argumento options contiene varias opciones sobre cómo ejecutar el diálogo. Vea el enum QFileDialog::Option para más información sobre las opciones que puede pasar. Para garantizar un diálogo de archivo nativo, debe establecerse ShowDirsOnly.

En Windows y macOS, esta función estática utiliza el diálogo de archivos nativo y no QFileDialog. Sin embargo, el diálogo de archivos nativo de Windows no permite mostrar archivos en el selector de directorios. Es necesario pasar la opción DontUseNativeDialog, o establecer el atributo de aplicación global AA_DontUseNativeDialogs para mostrar archivos utilizando un QFileDialog.

Tenga en cuenta que el diálogo de archivos nativo de macOS no muestra una barra de título.

En Unix/X11, el comportamiento normal del diálogo de archivos es resolver y seguir enlaces simbólicos. Por ejemplo, si /usr/tmp es un enlace simbólico a /var/tmp, el diálogo de archivos cambia a /var/tmp después de introducir /usr/tmp. Si options incluye DontResolveSymlinks, el diálogo de archivos trata los enlaces simbólicos como directorios normales.

En Windows, el diálogo genera un bucle de eventos modal bloqueante que no envía ningún QTimer, y si parent no es nullptr entonces posiciona el diálogo justo debajo de la barra de título del padre.

Véase también getOpenFileName(), getOpenFileNames(), y getSaveFileName().

[static] QUrl QFileDialog::getExistingDirectoryUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), QFileDialog::Options options = ShowDirsOnly, const QStringList &supportedSchemes = QStringList())

Esta es una función estática de conveniencia que devuelve un directorio existente seleccionado por el usuario. Si el usuario pulsa Cancelar, devuelve una url vacía.

La función se utiliza de forma similar a QFileDialog::getExistingDirectory(). En particular, parent, caption, dir y options se utilizan exactamente de la misma manera.

La principal diferencia con QFileDialog::getExistingDirectory() proviene de la posibilidad que se ofrece al usuario de seleccionar un directorio remoto. Por eso el tipo de retorno y el tipo de dir es QUrl.

El argumento supportedSchemes permite restringir el tipo de URL que el usuario puede seleccionar. Es una forma de que la aplicación declare los protocolos que admite para obtener el contenido del archivo. Una lista vacía significa que no se aplica ninguna restricción (por defecto). El soporte para archivos locales (esquema "file") está implícito y siempre activado; no es necesario incluirlo en la restricción.

Cuando es posible, esta función estática utiliza el diálogo de archivos nativo y no un QFileDialog. En plataformas que no soportan la selección de archivos remotos, Qt permite seleccionar sólo archivos locales.

Véase también getExistingDirectory(), getOpenFileUrl(), getOpenFileUrls(), y getSaveFileUrl().

[static] void QFileDialog::getOpenFileContent(const QString &nameFilter, const std::function<void (const QString &, const QByteArray &)> &fileOpenCompleted, QWidget *parent = nullptr)

Esta es una función estática de conveniencia que devuelve el contenido de un archivo seleccionado por el usuario.

Utilice esta función para acceder a archivos locales en Qt para WebAssembly, si el sandbox web restringe el acceso a archivos. Su implementación permite mostrar un diálogo de archivo nativo en el navegador, donde el usuario selecciona un archivo basándose en el parámetro nameFilter.

parent se ignora en Qt para WebAssembly. Pasa parent en otras plataformas, para hacer que el popup sea hijo de otro widget. Si la plataforma no soporta diálogos de archivo nativos, la función vuelve a QFileDialog.

La función es asíncrona y retorna inmediatamente. El callback fileOpenCompleted será llamado cuando un archivo haya sido seleccionado y su contenido haya sido leído en memoria.

auto fileContentReady = [](const QString &fileName, const QByteArray &fileContent) {
    if (fileName.isEmpty()) {
        // No file was selected
    } else {
        // Use fileName and fileContent
    }
};
QFileDialog::getOpenFileContent("Images (*.png *.xpm *.jpg)",  fileContentReady);

[static] QString QFileDialog::getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())

Esta es una función estática de conveniencia que devuelve un archivo existente seleccionado por el usuario. Si el usuario pulsa Cancelar, devuelve una cadena nula.

QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
                                                "/home",
                                                tr("Images (*.png *.xpm *.jpg)"));

La función crea un diálogo modal de archivo con el widget parent dado. Si parent no es nullptr, el diálogo se muestra centrado sobre el widget padre.

El directorio de trabajo del diálogo de archivo se establece en dir. Si dir incluye un nombre de archivo, éste se selecciona. Sólo se muestran los archivos que coinciden con filter. El filtro seleccionado se establece en selectedFilter. Los parámetros dir, selectedFilter, y filter pueden ser cadenas vacías. Si desea varios filtros, sepárelos con ';;', por ejemplo:

"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

El argumento options contiene varias opciones sobre cómo ejecutar el diálogo. Vea el enum QFileDialog::Option para más información sobre las opciones que puede pasar.

El título del diálogo se establece en caption. Si no se especifica caption, se utilizará un título por defecto.

En Windows y macOS, esta función estática utiliza el diálogo de archivo nativo y no QFileDialog. Tenga en cuenta que el diálogo de archivo nativo de macOS no muestra una barra de título.

En Windows, el diálogo genera un bucle de eventos modal bloqueante que no envía ningún QTimer, y si parent no es nullptr entonces posiciona el diálogo justo debajo de la barra de título del padre.

En Unix/X11, el comportamiento normal del diálogo de archivos es resolver y seguir enlaces simbólicos. Por ejemplo, si /usr/tmp es un enlace simbólico a /var/tmp, el diálogo de archivos cambia a /var/tmp después de introducir /usr/tmp. Si options incluye DontResolveSymlinks, el diálogo de archivos trata los enlaces simbólicos como directorios normales.

Véase también getOpenFileNames(), getSaveFileName() y getExistingDirectory().

[static] QStringList QFileDialog::getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())

Esta es una función estática de conveniencia que devuelve uno o más archivos existentes seleccionados por el usuario.

QStringList files = QFileDialog::getOpenFileNames(
                        this,
                        "Select one or more files to open",
                        "/home",
                        "Images (*.png *.xpm *.jpg)");

Esta función crea un diálogo modal de archivos con el widget parent dado. Si parent no es nullptr, el diálogo se muestra centrado sobre el widget padre.

El directorio de trabajo del diálogo de archivo se establece en dir. Si dir incluye un nombre de archivo, éste se selecciona. El filtro se establece en filter para que sólo se muestren los archivos que coincidan con el filtro. El filtro seleccionado se establece en selectedFilter. Los parámetros dir, selectedFilter y filter pueden ser cadenas vacías. Si necesita varios filtros, sepárelos con ';;', por ejemplo:

"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

El título del cuadro de diálogo se establece en caption. Si no se especifica caption, se utiliza un título predeterminado.

En Windows y macOS, esta función estática utiliza el diálogo de archivo nativo y no un QFileDialog. Tenga en cuenta que el diálogo de archivo nativo de macOS no muestra una barra de título.

En Windows, el diálogo genera un bucle de eventos modal bloqueante que no envía ningún QTimer, y si parent no es nullptr entonces posiciona el diálogo justo debajo de la barra de título del padre.

En Unix/X11, el comportamiento normal del diálogo de archivos es resolver y seguir enlaces simbólicos. Por ejemplo, si /usr/tmp es un enlace simbólico a /var/tmp, el diálogo de archivos cambiará a /var/tmp después de introducir /usr/tmp. El argumento options contiene varias opciones sobre cómo ejecutar el diálogo, vea el enum QFileDialog::Option para más información sobre las banderas que puede pasar.

Vea también getOpenFileName(), getSaveFileName(), y getExistingDirectory().

[static] QUrl QFileDialog::getOpenFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())

Esta es una función estática de conveniencia que devuelve un archivo existente seleccionado por el usuario. Si el usuario pulsa Cancelar, devuelve una url vacía.

La función se utiliza de forma similar a QFileDialog::getOpenFileName(). En concreto, parent, caption, dir, filter, selectedFilter y options se utilizan exactamente igual.

La principal diferencia con QFileDialog::getOpenFileName() radica en la posibilidad que se ofrece al usuario de seleccionar un archivo remoto. Por eso el tipo de retorno y el tipo de dir es QUrl.

El argumento supportedSchemes permite restringir el tipo de URL que el usuario puede seleccionar. Es una forma de que la aplicación declare los protocolos que soportará para obtener el contenido del archivo. Una lista vacía significa que no se aplica ninguna restricción (por defecto). El soporte para archivos locales (esquema "file") está implícito y siempre activado; no es necesario incluirlo en la restricción.

Cuando es posible, esta función estática utiliza el diálogo de archivos nativo y no un QFileDialog. En plataformas que no soportan la selección de archivos remotos, Qt permitirá seleccionar sólo archivos locales.

Véase también getOpenFileName(), getOpenFileUrls(), getSaveFileUrl(), y getExistingDirectoryUrl().

[static] QList<QUrl> QFileDialog::getOpenFileUrls(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())

Esta es una función estática de conveniencia que devuelve uno o más archivos existentes seleccionados por el usuario. Si el usuario pulsa Cancelar, devuelve una lista vacía.

La función se utiliza de forma similar a QFileDialog::getOpenFileNames(). En concreto, parent, caption, dir, filter, selectedFilter y options se utilizan exactamente igual.

La principal diferencia con QFileDialog::getOpenFileNames() radica en la posibilidad que se ofrece al usuario de seleccionar archivos remotos. Por eso el tipo de retorno y el tipo de dir son respectivamente QList<QUrl> y QUrl.

El argumento supportedSchemes permite restringir el tipo de URL que el usuario puede seleccionar. Es una forma de que la aplicación declare los protocolos que admite para obtener el contenido del archivo. Una lista vacía significa que no se aplica ninguna restricción (por defecto). El soporte para archivos locales (esquema "file") está implícito y siempre activado; no es necesario incluirlo en la restricción.

Cuando es posible, esta función estática utiliza el diálogo de archivos nativo y no un QFileDialog. En plataformas que no soportan la selección de archivos remotos, Qt permitirá seleccionar sólo archivos locales.

Véase también getOpenFileNames(), getOpenFileUrl(), getSaveFileUrl(), y getExistingDirectoryUrl().

[static] QString QFileDialog::getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())

Esta es una función estática de conveniencia que devuelve un nombre de archivo seleccionado por el usuario. No es necesario que el archivo exista.

Crea un diálogo modal de archivo con el widget parent dado. Si parent no es nullptr, el diálogo se mostrará centrado sobre el widget padre.

QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
                                                "/home/jana/untitled.png",
                                                tr("Images (*.png *.xpm *.jpg)"));

El directorio de trabajo del diálogo de archivo se establece en dir. Si dir incluye un nombre de archivo, éste se selecciona. Sólo se muestran los archivos que coinciden con filter. El filtro seleccionado se establece en selectedFilter. Los parámetros dir, selectedFilter, y filter pueden ser cadenas vacías. Los filtros múltiples se separan con ';;'. Por ejemplo:

"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

El argumento options contiene varias opciones sobre cómo ejecutar el diálogo, consulte el enum QFileDialog::Option para obtener más información sobre los indicadores que puede pasar.

El filtro por defecto puede elegirse ajustando selectedFilter al valor deseado.

El título del diálogo se establece en caption. Si no se especifica caption, se utiliza un título por defecto.

En Windows y macOS, esta función estática utiliza el diálogo de archivo nativo y no QFileDialog.

En Windows, el diálogo genera un bucle de eventos modal bloqueante que no envía ningún QTimer, y si parent no es nullptr entonces posiciona el diálogo justo debajo de la barra de título del padre. En macOS, con su diálogo de archivo nativo, el argumento de filtro se ignora.

En Unix/X11, el comportamiento normal del diálogo de archivos es resolver y seguir enlaces simbólicos. Por ejemplo, si /usr/tmp es un enlace simbólico a /var/tmp, el diálogo de archivos cambia a /var/tmp después de introducir /usr/tmp. Si options incluye DontResolveSymlinks, el diálogo de archivos trata los enlaces simbólicos como directorios normales.

Véase también getOpenFileName(), getOpenFileNames() y getExistingDirectory().

[static] QUrl QFileDialog::getSaveFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())

Esta es una función estática de conveniencia que devuelve un archivo seleccionado por el usuario. No es necesario que el fichero exista. Si el usuario pulsa Cancelar, devuelve una url vacía.

La función se utiliza de forma similar a QFileDialog::getSaveFileName(). En concreto, parent, caption, dir, filter, selectedFilter y options se utilizan exactamente igual.

La principal diferencia con QFileDialog::getSaveFileName() radica en la posibilidad que se ofrece al usuario de seleccionar un archivo remoto. Por eso el tipo de retorno y el tipo de dir es QUrl.

El argumento supportedSchemes permite restringir el tipo de URL que el usuario puede seleccionar. Es una forma de que la aplicación declare los protocolos que admite para guardar el contenido del archivo. Una lista vacía significa que no se aplica ninguna restricción (por defecto). El soporte para archivos locales (esquema "file") está implícito y siempre activado; no es necesario incluirlo en la restricción.

Cuando es posible, esta función estática utiliza el diálogo de archivos nativo y no un QFileDialog. En plataformas que no soportan la selección de archivos remotos, Qt permitirá seleccionar sólo archivos locales.

Véase también getSaveFileName(), getOpenFileUrl(), getOpenFileUrls(), y getExistingDirectoryUrl().

QStringList QFileDialog::history() const

Devuelve el historial de navegación del filedialog como una lista de rutas.

Véase también setHistory().

QAbstractFileIconProvider *QFileDialog::iconProvider() const

Devuelve el proveedor de iconos utilizado por el filedialog.

Véase también setIconProvider().

QAbstractItemDelegate *QFileDialog::itemDelegate() const

Devuelve el delegado de elementos utilizado para mostrar los elementos en las vistas del diálogo de archivo.

Véase también setItemDelegate().

QString QFileDialog::labelText(QFileDialog::DialogLabel label) const

Devuelve el texto mostrado en el diálogo de archivo en la dirección label especificada.

Véase también setLabelText().

QStringList QFileDialog::mimeTypeFilters() const

Devuelve los filtros de tipo MIME que están en funcionamiento en este diálogo de archivo.

Véase también setMimeTypeFilters().

QStringList QFileDialog::nameFilters() const

Devuelve los filtros de tipo de archivo que están en funcionamiento en este diálogo de archivo.

Véase también setNameFilters().

void QFileDialog::open(QObject *receiver, const char *member)

Esta función muestra el diálogo, y conecta la ranura especificada por receiver y member a la señal que informa sobre los cambios de selección. Si fileMode es ExistingFiles, ésta es la señal filesSelected(), en caso contrario es la señal fileSelected().

La señal se desconecta de la ranura cuando se cierra el diálogo.

QAbstractProxyModel *QFileDialog::proxyModel() const

Devuelve el modelo de proxy utilizado por el diálogo de archivos. Por defecto no se establece ningún proxy.

Véase también setProxyModel().

bool QFileDialog::restoreState(const QByteArray &state)

Restaura el diseño de los diálogos, el historial y el directorio actual a la dirección state especificada.

Normalmente se utiliza junto con QSettings para restaurar el tamaño de una sesión anterior.

Devuelve false si hay errores

[static] void QFileDialog::saveFileContent(const QByteArray &fileContent, const QString &fileNameHint, QWidget *parent = nullptr)

Esta es una función estática de conveniencia que guarda fileContent en un archivo, utilizando un nombre de archivo y una ubicación elegidos por el usuario. Se puede proporcionar fileNameHint para sugerir un nombre de archivo al usuario.

Utilice esta función para guardar contenido en archivos locales en Qt para WebAssembly, si el sandbox web restringe el acceso a archivos. Su implementación permite mostrar un diálogo de archivo nativo en el navegador, donde el usuario especifica un archivo de salida basado en el argumento fileNameHint.

parent se ignora en Qt para WebAssembly. Pasa parent en otras plataformas, para hacer que el popup sea hijo de otro widget. Si la plataforma no soporta diálogos de archivos nativos, la función vuelve a QFileDialog.

La función es asíncrona y devuelve inmediatamente.

QByteArray imageData; // obtained from e.g. QImage::save()
QFileDialog::saveFileContent(imageData, "myimage.png");

QByteArray QFileDialog::saveState() const

Guarda el estado del diseño del diálogo, el historial y el directorio actual.

Normalmente se utiliza junto con QSettings para recordar el tamaño para una sesión futura. Se almacena un número de versión como parte de los datos.

void QFileDialog::selectFile(const QString &filename)

Selecciona la dirección filename en el diálogo de archivos.

Véase también selectedFiles().

void QFileDialog::selectMimeTypeFilter(const QString &filter)

Establece el tipo MIME actual filter.

void QFileDialog::selectNameFilter(const QString &filter)

Establece el tipo de archivo actual filter. Se pueden pasar varios filtros en filter separándolos con punto y coma o espacios.

Véase también setNameFilter(), setNameFilters() y selectedNameFilter().

void QFileDialog::selectUrl(const QUrl &url)

Selecciona el url dado en el diálogo de archivos.

Nota: La versión no nativa QFileDialog sólo admite archivos locales.

Véase también selectedUrls().

QStringList QFileDialog::selectedFiles() const

Devuelve una lista de cadenas que contienen las rutas absolutas de los archivos seleccionados en el diálogo. Si no hay archivos seleccionados, o el modo no es ExistingFiles o ExistingFile, selectedFiles() contiene la ruta actual en la ventana gráfica.

Véase también selectedNameFilter() y selectFile().

QString QFileDialog::selectedMimeTypeFilter() const

Devuelve El mimetype del archivo que el usuario seleccionó en el diálogo de archivos.

QString QFileDialog::selectedNameFilter() const

Devuelve el filtro que el usuario seleccionó en el diálogo de archivos.

Véase también selectedFiles().

QList<QUrl> QFileDialog::selectedUrls() const

Devuelve una lista de urls que contienen los archivos seleccionados en el diálogo. Si no hay archivos seleccionados, o el modo no es ExistingFiles o ExistingFile, selectedUrls() contiene la ruta actual en la ventana gráfica.

Véase también selectedNameFilter() y selectUrl().

void QFileDialog::setDirectory(const QString &directory)

Establece el diálogo de archivo actual directory.

Nota: En iOS, si se establece directory en QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last(), se utiliza un diálogo nativo de selección de imágenes para acceder al álbum de fotos del usuario. El nombre de archivo devuelto puede cargarse utilizando QFile y APIs relacionadas. Para que esto se habilite, el Info.plist asignado a QMAKE_INFO_PLIST en el archivo de proyecto debe contener la clave NSPhotoLibraryUsageDescription. Consulte la documentación Info.plist de Apple para obtener más información sobre esta clave. Esta característica se añadió en Qt 5.5.

Véase también directory().

void QFileDialog::setDirectory(const QDir &directory)

Se trata de una función sobrecargada.

void QFileDialog::setDirectoryUrl(const QUrl &directory)

Establece la url actual del diálogo de archivos directory.

Nota: El QFileDialog no nativo sólo admite archivos locales.

Nota: En Windows, es posible pasar URLs que representen una de las carpetas virtuales, como "Ordenador" o "Red". Esto se hace pasando un QUrl utilizando el esquema clsid seguido del valor CLSID con las llaves eliminadas. Por ejemplo, la URL clsid:374DE290-123F-4565-9164-39C4925E467B indica la ubicación de la descarga. Para obtener una lista completa de los valores posibles, consulte la documentación de MSDN sobre KNOWNFOLDERID. Esta función se añadió en Qt 5.5.

Véase también directoryUrl() y QUuid.

void QFileDialog::setFilter(QDir::Filters filters)

Establece el filtro utilizado por el modelo en filters. El filtro se utiliza para especificar el tipo de archivos que deben mostrarse.

Véase también filter().

void QFileDialog::setHistory(const QStringList &paths)

Establece el historial de navegación del diálogo de archivo para que contenga la dirección paths.

Véase también history().

void QFileDialog::setIconProvider(QAbstractFileIconProvider *provider)

Establece el proveedor de iconos utilizado por el diálogo de archivo en la dirección provider especificada.

Véase también iconProvider().

void QFileDialog::setItemDelegate(QAbstractItemDelegate *delegate)

Establece el delegado de elementos utilizado para mostrar los elementos en las vistas del diálogo de archivos en el delegate dado.

Cualquier delegado existente será eliminado, pero no borrado. QFileDialog no se apropia de delegate.

Advertencia: No debe compartir la misma instancia de un delegado entre vistas. Hacerlo puede causar un comportamiento de edición incorrecto o poco intuitivo ya que cada vista conectada a un delegado dado puede recibir la señal closeEditor(), e intentar acceder, modificar o cerrar un editor que ya ha sido cerrado.

Tenga en cuenta que el modelo utilizado es QFileSystemModel. Tiene roles de datos de elementos personalizados, que se describen mediante el enum Roles. Puede utilizar QFileIconProvider si sólo desea iconos personalizados.

Véase también itemDelegate(), setIconProvider(), y QFileSystemModel.

void QFileDialog::setLabelText(QFileDialog::DialogLabel label, const QString &text)

Establece el text mostrado en el filedialog en el label especificado.

Véase también labelText().

void QFileDialog::setMimeTypeFilters(const QStringList &filters)

Establece el filters utilizado en el diálogo de archivos, a partir de una lista de tipos MIME.

Método de conveniencia para setNameFilters(). Utiliza QMimeType para crear un filtro de nombres a partir de los patrones glob y la descripción definidos en cada tipo MIME.

Utiliza application/octet-stream para el filtro "Todos los archivos (*)", ya que es el tipo MIME base para todos los archivos.

Llamar a setMimeTypeFilters anula cualquier filtro de nombre previamente establecido, y cambia el valor de retorno de nameFilters().

QStringList mimeTypeFilters({"image/jpeg", // will show "JPEG image (*.jpeg *.jpg *.jpe)
                             "image/png",  // will show "PNG image (*.png)"
                             "application/octet-stream" // will show "All files (*)"
                            });

QFileDialog dialog(this);
dialog.setMimeTypeFilters(mimeTypeFilters);
dialog.exec();

Véase también mimeTypeFilters().

void QFileDialog::setNameFilter(const QString &filter)

Establece el filtro utilizado en el diálogo de archivos en filter.

Si filter contiene un par de paréntesis con uno o más patrones de nombre de archivo y comodín, separados por espacios, sólo se utilizará como filtro el texto contenido en los paréntesis. Esto significa que todas estas llamadas son equivalentes:

dialog.setNameFilter("All C++ files (*.cpp *.cc *.C *.cxx *.c++)");
dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++");

Nota: Con el diálogo de archivos nativo de Android, se utiliza el tipo mime que coincida con el filtro de nombre dado, ya que sólo se admiten tipos mime.

Véase también setMimeTypeFilters() y setNameFilters().

void QFileDialog::setNameFilters(const QStringList &filters)

Establece el filters utilizado en el diálogo de archivos.

Tenga en cuenta que el filtro *.* no es portable, porque la suposición histórica de que la extensión del archivo determina el tipo de archivo no es consistente en todos los sistemas operativos. Es posible tener un archivo sin punto en su nombre (por ejemplo, Makefile). En un diálogo de archivos nativo de Windows, *.* coincide con este tipo de archivos, mientras que en otros tipos de diálogos de archivos puede no coincidir. Por lo tanto, es mejor utilizar * si desea seleccionar cualquier archivo.

const QStringList filters({"Image files (*.png *.xpm *.jpg)",
                           "Text files (*.txt)",
                           "Any files (*)"
                          });
QFileDialog dialog(this);
dialog.setNameFilters(filters);
dialog.exec();

setMimeTypeFilters() tiene la ventaja de proporcionar todos los filtros de nombre posibles para cada tipo de archivo. Por ejemplo, las imágenes JPEG tienen tres extensiones posibles; si su aplicación puede abrir este tipo de archivos, seleccionar el tipo mime image/jpeg como filtro le permite abrirlos todos.

Véase también nameFilters().

void QFileDialog::setOption(QFileDialog::Option option, bool on = true)

Habilita la opción option si on es verdadero; en caso contrario, borra la opción option.

Las opciones (en particular la opción DontUseNativeDialog ) deben establecerse antes de cambiar las propiedades del diálogo o de mostrar el diálogo.

Establecer opciones mientras el diálogo está visible no garantiza que tenga un efecto inmediato en el diálogo (dependiendo de la opción y de la plataforma).

Establecer opciones después de cambiar otras propiedades puede hacer que estos valores no tengan efecto.

Véase también options y testOption().

void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel)

Establece el modelo para las vistas en la dirección proxyModel. Esto es útil si desea modificar el modelo subyacente; por ejemplo, para añadir columnas, filtrar datos o añadir unidades.

Cualquier modelo proxy existente se elimina, pero no se borra. El diálogo de archivos toma posesión del proxyModel.

Véase también proxyModel().

void QFileDialog::setSidebarUrls(const QList<QUrl> &urls)

Establece los urls que se encuentran en la barra lateral.

Por ejemplo:

QList<QUrl> urls;
urls << QUrl::fromLocalFile("/Users/foo/Code/qt5")
     << QUrl::fromLocalFile(QStandardPaths::standardLocations(QStandardPaths::MusicLocation).first());

QFileDialog dialog;
dialog.setSidebarUrls(urls);
dialog.setFileMode(QFileDialog::AnyFile);
if (dialog.exec()) {
    // ...
}

Entonces el diálogo de archivos tiene este aspecto:

Abrir el diálogo de archivos con las URL establecidas en la barra lateral

Véase también sidebarUrls().

[override virtual] void QFileDialog::setVisible(bool visible)

Reimplementa: QDialog::setVisible(bool visible).

QList<QUrl> QFileDialog::sidebarUrls() const

Devuelve una lista de urls que están actualmente en la barra lateral

Véase también setSidebarUrls().

bool QFileDialog::testOption(QFileDialog::Option option) const

Devuelve true si el option dado está habilitado; en caso contrario, devuelve false.

Véase también options y setOption().

[signal] void QFileDialog::urlSelected(const QUrl &url)

Cuando cambia la selección y se acepta el diálogo, se emite esta señal con la url seleccionada (posiblemente vacía).

Véase también currentUrlChanged() y QDialog::Accepted.

[signal] void QFileDialog::urlsSelected(const QList<QUrl> &urls)

Cuando cambia la selección y se acepta el diálogo, se emite esta señal con la lista (posiblemente vacía) de seleccionados urls.

Véase también currentUrlChanged() y QDialog::Accepted.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.