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 |
- Lista de todos los miembros, incluyendo los heredados
- QFileDialog es parte de Standard Dialogs.
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.

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
| Constante | Valor |
|---|---|
QFileDialog::AcceptOpen | 0 |
QFileDialog::AcceptSave | 1 |
enum QFileDialog::DialogLabel
| Constante | Valor |
|---|---|
QFileDialog::LookIn | 0 |
QFileDialog::FileName | 1 |
QFileDialog::FileType | 2 |
QFileDialog::Accept | 3 |
QFileDialog::Reject | 4 |
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.
| Constante | Valor | Descripción |
|---|---|---|
QFileDialog::AnyFile | 0 | El nombre de un fichero, tanto si existe como si no. |
QFileDialog::ExistingFile | 1 | El nombre de un único fichero existente. |
QFileDialog::Directory | 2 | El 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::ExistingFiles | 3 | Los 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.
| Constante | Valor | Descripción |
|---|---|---|
QFileDialog::ShowDirsOnly | 0x00000001 | Mostrar sólo directorios. Por defecto, se muestran tanto los archivos como los directorios. This option is only effective in the Directory file mode. |
QFileDialog::DontResolveSymlinks | 0x00000002 | No resolver enlaces simbólicos. Por defecto, los enlaces simbólicos se resuelven. |
QFileDialog::DontConfirmOverwrite | 0x00000004 | No 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::DontUseNativeDialog | 0x00000008 | No 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::ReadOnly | 0x00000010 | Indica que el modelo es de sólo lectura. |
QFileDialog::HideNameFilterDetails | 0x00000020 | Indica si los detalles del filtro de nombre de fichero están ocultos o no. |
QFileDialog::DontUseCustomDirectoryIcons | 0x00000040 | Utilice 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.
| Constante | Valor | Descripción |
|---|---|---|
QFileDialog::Detail | 0 | Muestra un icono, un nombre y detalles para cada elemento del directorio. |
QFileDialog::List | 1 | Muestra 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:

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.