Spec-Zone.ru › Qt 6.1

Класс QFileDialog

Класс QFileDialog предоставляет диалоговое окно, которое позволяет пользователям выбирать файлы или каталоги. Подробнее...

Заголовок: #include <QFileDialog>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QDialog
  • Список всех членов, включая унаследованные

Публичные типы

Перечисление AcceptMode { AcceptOpen, AcceptSave }
Перечисление DialogLabel { LookIn, FileName, FileType, Accept, Reject }
Перечисление FileMode { AnyFile, ExistingFile, Directory, ExistingFiles }
Перечисление Option { ShowDirsOnly, DontResolveSymlinks, DontConfirmOverwrite, DontUseNativeDialog, ReadOnly, …, DontUseCustomDirectoryIcons }
Флаги Options
Перечисление ViewMode { Detail, List }

Свойства

  • acceptMode : AcceptMode
  • defaultSuffix : QString
  • fileMode : FileMode
  • options : Options
  • supportedSchemes : QStringList
  • viewMode : ViewMode

Открытые функции

QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())
QFileDialog(QWidget *parent, Qt::WindowFlags flags)
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

Реализованные общедоступные функции

virtual void setVisible(bool visible) override

Сигналы

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)

Статические публичные члены

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)
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 = QString())

Переопределённые защищённые функции

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

Подробное описание

Класс QFileDialog позволяет пользователю просматривать файловую систему для выбора одного или нескольких файлов или директории.

Самый простой способ создать QFileDialog — использовать статические функции.

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

В приведенном выше примере модальный QFileDialog создаётся с помощью статической функции. Диалог изначально отображает содержимое каталога "/home/jana" и отображает файлы, соответствующие шаблонам, заданным в строке "Изображения (*.png *.jpg *.bmp)". Родительским элементом диалога выбора файла задаётся this, а заголовок окна — "Открыть изображение".

Если вам нужно использовать несколько фильтров, разделяйте их двумя точками с запятой. Например:

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

Вы можете создать собственный QFileDialog без использования статических функций. Вызвав setFileMode(), вы можете указать, что пользователь должен выбрать в диалоге:

QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::AnyFile);

В приведенном выше примере режим диалога выбора файла задаётся как AnyFile, что означает, что пользователь может выбрать любой файл или даже указать файл, которого не существует. Этот режим полезен для создания диалога выбора файла "Сохранить как". Используйте ExistingFile, если пользователь должен выбрать существующий файл, или Directory, если должен быть выбран только каталог. См. перечисление QFileDialog::FileMode для полного списка режимов.

Свойство fileMode содержит режим работы диалога; это указывает, какие типы объектов пользователь должен выбрать. Используйте setNameFilter(), чтобы установить фильтр файлов диалога. Например:

dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)"));

В приведенном выше примере фильтр установлен на "Images (*.png *.xpm *.jpg)", это означает, что будут показаны только файлы с расширением png, xpm, или jpg. Вы можете применять несколько фильтров с помощью setNameFilters(). Используйте selectNameFilter(), чтобы выбрать один из предоставленных фильтров в качестве фильтра по умолчанию для диалога выбора файла.

Диалог выбора файла имеет два режима отображения: List и Detail. List представляет содержимое текущей директории в виде списка имён файлов и каталогов. Detail также отображает список имён файлов и каталогов, но предоставляет дополнительную информацию рядом с каждым именем, такую как размер файла и дата его изменения. Установите режим с помощью setViewMode():

dialog.setViewMode(QFileDialog::Detail);

Последняя важная функция, которую вам нужно использовать при создании собственного диалога выбора файла, — selectedFiles().

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

В приведенном выше примере создаётся и отображается модальный диалог выбора файла. Если пользователь нажмёт «ОК», выбранный им файл будет помещён в fileName.

Рабочий каталог диалога можно установить с помощью setDirectory(). Каждый файл в текущей директории можно выбрать с помощью функции selectFile().

Пример Стандартные диалоги демонстрирует использование QFileDialog, а также других встроенных диалогов Qt.

По умолчанию, если платформа предоставляет собственный диалог выбора файла, будет использован он. В этом случае виджеты, которые в противном случае использовались бы для построения диалога, не будут инициализированы, поэтому такие вспомогательные функции, как layout() и itemDelegate(), вернут null. Вы можете установить опцию DontUseNativeDialog, чтобы убедиться, что будет использоваться реализация на основе виджетов вместо родного диалога.

См. также QDir, QFileInfo, QFile, QColorDialog, QFontDialog, Пример Стандартные диалоги и Пример приложения Qt Widgets.

Документация по типам членов

перечисление QFileDialog::AcceptMode

Постоянная Значение
QFileDialog::AcceptOpen 0
QFileDialog::AcceptSave 1

enum QFileDialog::DialogLabel

Константа Значение
QFileDialog::LookIn 0
QFileDialog::FileName 1
QFileDialog::FileType 2
QFileDialog::Accept 3
QFileDialog::Reject 4

enum QFileDialog::FileMode

Этот перечисление используется для указания того, что пользователь может выбрать в диалоге файлов; т.е. что диалог вернёт, если пользователь нажмёт OK.

Константа Значение Описание
QFileDialog::AnyFile 0 Имя файла, существует он или нет.
QFileDialog::ExistingFile 1 Имя одного существующего файла.
QFileDialog::Directory 2 Имя директории. Отображаются как файлы, так и директории. Однако, родной диалог Windows не поддерживает отображение файлов в диалоге выбора директории.
QFileDialog::ExistingFiles 3 Имя одного или нескольких существующих файлов.

См. такжеsetFileMode().

enum QFileDialog::Optionflags QFileDialog::Options

Константа Значение Описание
QFileDialog::ShowDirsOnly 0x00000001 Отображать только директории в диалоге файлов. По умолчанию отображаются как файлы, так и директории. (Действительно только в режиме файлов Directory.)
QFileDialog::DontResolveSymlinks 0x00000002 Не разрешать символические ссылки в диалоге файлов. По умолчанию символические ссылки разрешаются.
QFileDialog::DontConfirmOverwrite 0x00000004 Не запрашивать подтверждения при выборе существующего файла. По умолчанию запрос подтверждения выполняется.

Примечание: Этот параметр не поддерживается на macOS при использовании родного диалога файлов.

Константа Значение Описание
QFileDialog::DontUseNativeDialog 0x00000008 Не использовать родной диалог файлов. По умолчанию используется родной диалог файлов, если вы не используете подкласс QFileDialog, содержащий макрос Q_OBJECT, или платформа не имеет родного диалога требуемого типа.

Примечание: Этот параметр должен быть установлен до изменения свойств диалога или его отображения.

Константа Значение Описание
QFileDialog::ReadOnly 0x00000010 Указывает, что модель только для чтения.
QFileDialog::HideNameFilterDetails 0x00000020 Указывает, скрыты или нет подробности фильтра имен файлов.
QFileDialog::DontUseCustomDirectoryIcons 0x00000040 Всегда использовать значок по умолчанию для директории. Некоторые платформы позволяют пользователю установить другой значок. Поиск пользовательского значка вызывает большой эффект производительности в сетях или на съемных дисках. Установка этого значения включит параметр QFileIconProvider::DontUseCustomDirectoryIcons в поставщике значков. Это значение перечисления было добавлено в Qt 5.2.

Тип Options — псевдоним для QFlags<Option>. Он хранит логическое ИЛИ сочетание значений Option.

enum QFileDialog::ViewMode

Это перечисление описывает режим отображения диалога файлов; т.е. какую информацию о каждом файле будет отображено.

Константа Значение Описание
QFileDialog::Detail 0 Отображает значок, имя и подробности для каждого элемента в каталоге.
QFileDialog::List 1 Отображает только значок и имя для каждого элемента в каталоге.

См. такжеsetViewMode().

Документация по свойству

acceptMode : AcceptMode

Это свойство содержит режим приема диалога.

Режим действия определяет, предназначен ли диалог для открытия или сохранения файлов.

По умолчанию это свойство установлено в AcceptOpen.

Функции доступа:

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

См. также AcceptMode.

defaultSuffix : QString

Расширение, добавляемое к имени файла, если другое расширение не указано.

Это свойство задаёт строку, которая будет добавлена к имени файла, если у него ещё нет расширения. Расширение обычно используется для указания типа файла (например, "txt" указывает текстовый файл).

Если первый символ - точка ('.') , она удаляется.

Функции доступа:

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

fileMode : FileMode

Это свойство содержит режим работы с файлами диалога.

Режим работы с файлами определяет количество и тип элементов, которые пользователь должен выбрать в диалоге.

По умолчанию это свойство установлено в AnyFile.

Эта функция установит метки для FileName и Accept DialogLabel. Возможно задать пользовательский текст после вызова setFileMode().

Функции доступа:

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

См. также FileMode.

options : Options

Это свойство содержит различные параметры, влияющие на внешний вид диалога.

По умолчанию все параметры отключены.

Параметры (особенно параметр DontUseNativeDialogs) должны быть установлены до изменения свойств диалога или его отображения.

Установка параметров во время отображения диалога не гарантирует немедленного влияния на диалог (в зависимости от параметра и платформы).

Установка параметров после изменения других свойств может привести к тому, что эти значения не будут иметь эффекта.

Функции доступа:

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

См. также setOption() и testOption().

[since 5.6] supportedSchemes : QStringList

Это свойство содержит схемы URL, к которым диалог файла должен разрешать навигацию.

Установка этого свойства позволяет ограничить тип URL, который пользователь сможет выбрать. Это способ для приложения объявить протоколы, которые оно будет поддерживать для получения содержимого файла. Пустой список означает, что ограничений нет (по умолчанию). Поддержка локальных файлов ("схема file") подразумевается и всегда включена; нет необходимости включать её в ограничение.

Это свойство было добавлено в Qt 5.6.

Функции доступа:

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

viewMode : ViewMode

Это свойство содержит способ отображения файлов и каталогов в диалоге.

По умолчанию используется режим Detail для отображения информации о файлах и каталогах.

Функции доступа:

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

См. также ViewMode.

Документация по функциям-членам

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

Создаёт диалог выбора файла с заданным parent и caption, который изначально отображает содержимое указанного каталога directory. Содержимое каталога фильтруется перед отображением в диалоге, используя список фильтров, разделённый точкой с запятой, указанный в filter.

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

Создаёт диалог выбора файла с заданным parent и флагами виджета flags.

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

При изменении текущего файла для локальных операций, этот сигнал испускается с новым именем файла как параметром path.

См. также filesSelected().

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

При изменении текущего файла, этот сигнал испускается с новым URL файла как параметром url.

Эта функция была добавлена в Qt 5.2.

См. также urlsSelected().

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

Этот сигнал испускается для локальных операций, когда пользователь вводит directory.

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

Этот сигнал испускается, когда пользователь вводит directory.

Эта функция была добавлена в Qt 5.2.

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

При изменении выбора для локальных операций и принятии диалога, этот сигнал испускается с (возможно пустым) выбранным file.

См. также currentChanged() и QDialog::Accepted.

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

При изменении выбора для локальных операций и принятии диалога, этот сигнал испускается со списком (возможно пустым) выбранных selected файлов.

См. также currentChanged() и QDialog::Accepted.

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

Этот сигнал испускается, когда пользователь выбирает filter.

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

При изменении выбора и принятии диалога, этот сигнал испускается с (возможно пустым) выбранным url.

Эта функция была добавлена в Qt 5.2.

См. также currentUrlChanged() и QDialog::Accepted.

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

При изменении выбора и принятии диалога, этот сигнал испускается со списком (возможно пустым) выбранных urls.

Эта функция была добавлена в Qt 5.2.

См. также currentUrlChanged() и QDialog::Accepted.

[virtual] QFileDialog::~QFileDialog()

Уничтожает диалог выбора файла.

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

Переопределяет: QDialog::accept().

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

Реализует: QWidget::changeEvent(QEvent *event).

QDir QFileDialog::directory() const

Возвращает каталог, который в данный момент отображается в диалоге.

См. также setDirectory().

[since 5.2] QUrl QFileDialog::directoryUrl() const

Возвращает URL каталога, который в данный момент отображается в диалоге.

Эта функция была добавлена в Qt 5.2.

См. также setDirectoryUrl().

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

Реализует: QDialog::done(int r).

QDir::Filters QFileDialog::filter() const

Возвращает фильтр, используемый при отображении файлов.

См. также setFilter().

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

Это удобная статическая функция, которая возвращает существующий каталог, выбранный пользователем.

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

Эта функция создаёт модальный диалог выбора файла с заданным виджетом parent. Если parent не nullptr, диалог будет показан, центрированный над родительским виджетом.

Рабочий каталог диалога устанавливается в dir, а заголовок — в caption. Любой из них может быть пустой строкой, в этом случае будет использован текущий каталог и стандартный заголовок соответственно.

Аргумент options содержит различные параметры работы диалога, см. перечисление QFileDialog::Option для получения дополнительной информации о флагах, которые можно передать. Для обеспечения использования родного диалога выбора файлов, необходимо установить ShowDirsOnly.

В Windows и macOS эта статическая функция будет использовать родной диалог выбора файлов, а не QFileDialog. Однако родной диалог Windows не поддерживает отображение файлов в диалоге выбора каталога. Для отображения файлов с помощью QFileDialog необходимо установить DontUseNativeDialog.

В Unix/X11 обычное поведение диалога выбора файлов — разрешать и следовать символичным ссылкам. Например, если /usr/tmp является символичной ссылкой на /var/tmp, диалог выбора файлов переключится на /var/tmp после ввода /usr/tmp. Если options включает DontResolveSymlinks, диалог выбора файлов будет обрабатывать символичные ссылки как обычные каталоги.

В Windows диалог будет запускать блокирующую модальную очередь событий, которая не будет обрабатывать QTimers, а если parent не nullptr, то он разместит диалог сразу под строкой заголовка родительского виджета.

Предупреждение: Не удаляйте parent во время выполнения диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QFileDialog.

См. также getOpenFileName(), getOpenFileNames() и getSaveFileName().

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

Это удобная статическая функция, которая возвращает существующий каталог, выбранный пользователем. Если пользователь нажимает «Отмена», она возвращает пустой URL.

Функция используется аналогично QFileDialog::getExistingDirectory(). В частности, parent, caption, dir и options используются точно так же.

Основное отличие от QFileDialog::getExistingDirectory() заключается в возможности выбора удалённого каталога пользователем. Именно поэтому тип возвращаемого значения и тип dir — QUrl.

Аргумент supportedSchemes позволяет ограничить тип URL, который пользователь сможет выбрать. Это способ для приложения объявить протоколы, которые оно будет поддерживать для извлечения содержимого файла. Пустой список означает, что ограничений нет (по умолчанию). Поддержка локальных файлов ("file" схема) подразумевается и всегда включена; нет необходимости включать её в ограничение.

Если это возможно, эта статическая функция будет использовать родной диалог выбора файлов, а не QFileDialog. На платформах, которые не поддерживают выбор удалённых файлов, Qt позволит выбрать только локальные файлы.

Эта функция была добавлена в Qt 5.2.

См. также getExistingDirectory(), getOpenFileUrl(), getOpenFileUrls() и getSaveFileUrl().

[static, since 5.13] void QFileDialog::getOpenFileContent(const QString &nameFilter, const std::function<void (const QString &, const QByteArray &)> &fileOpenCompleted)

Это удобная статическая функция, которая возвращает содержимое файла, выбранного пользователем.

Эта функция используется для доступа к локальным файлам в Qt for WebAssembly, где среда веб-песочницы накладывает ограничения на способы такого доступа. Её реализация заставит браузер отобразить родной диалог выбора файлов, где пользователь выбирает файл на основе параметра nameFilter.

Она также может использоваться на других платформах, где она будет использовать QFileDialog по умолчанию.

Функция асинхронная и возвращает немедленно. Обратный вызов fileOpenCompleted будет вызван, когда файл был выбран и его содержимое было считано в память.

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);

Эта функция была добавлена в Qt 5.13.

[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())

Это удобная статическая функция, возвращающая существующий файл, выбранный пользователем. Если пользователь нажимает «Отмена», она возвращает пустую строку.

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

Функция создаёт модальный диалог выбора файла с заданным виджетом parent. Если parent не nullptr, диалог будет показан, центрированный над родительским виджетом.

Рабочий каталог диалога выбора файла устанавливается в dir. Если dir содержит имя файла, файл будет выбран. Отображаются только файлы, которые соответствуют заданному filter. Выбранный фильтр устанавливается в selectedFilter. Параметры dir, selectedFilter и filter могут быть пустыми строками. Если нужно несколько фильтров, разделяйте их «;;», например:

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

Аргумент options содержит различные параметры работы диалога, см. перечисление QFileDialog::Option для получения дополнительной информации о флагах, которые можно передать.

Заголовок диалога устанавливается в caption. Если caption не указан, будет использован стандартный заголовок.

В Windows и macOS эта статическая функция будет использовать родной диалог выбора файлов, а не QFileDialog.

В Windows диалог будет запускать блокирующую модальную очередь событий, которая не будет обрабатывать QTimers, а если parent не nullptr, то он разместит диалог сразу под строкой заголовка родительского виджета.

В Unix/X11 обычное поведение диалога выбора файлов — разрешать и следовать символичным ссылкам. Например, если /usr/tmp является символичной ссылкой на /var/tmp, диалог выбора файлов переключится на /var/tmp после ввода /usr/tmp. Если options включает DontResolveSymlinks, диалог выбора файлов будет обрабатывать символичные ссылки как обычные каталоги.

Предупреждение: Не удаляйте parent во время выполнения диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QFileDialog.

См. также getOpenFileNames(), getSaveFileName() и 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())

Эта удобная статическая функция возвращает один или несколько существующих файлов, выбранных пользователем.

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

Эта функция создаёт модальный диалог выбора файла с заданным виджетом parent. Если parent не nullptr, диалог будет показан центрированным над родительским виджетом.

Рабочий каталог диалога выбора файла будет установлен в dir. Если dir включает имя файла, файл будет выбран. Фильтр установлен на filter, так что будут показаны только файлы, соответствующие фильтру. Выбранный фильтр установлен в selectedFilter. Параметры dir, selectedFilter и filter могут быть пустыми строками. Если вам нужны несколько фильтров, разделяйте их «;;», например:

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

Заголовок диалога установлен в caption. Если caption не указан, будет использован стандартный заголовок.

В Windows и macOS эта статическая функция будет использовать родной диалог выбора файла, а не QFileDialog.

В Windows диалог запустит блокирующий модальный цикл обработки событий, который не будет отправлять QTimers, и если parent не nullptr, то диалог будет позиционирован сразу под строкой заголовка родителя.

В Unix/X11 стандартное поведение диалога выбора файла — разрешать и следовать символам-ссылкам. Например, если /usr/tmp — это символ-ссылка на /var/tmp, диалог выбора файла изменится на /var/tmp после ввода /usr/tmp. Аргумент options содержит различные параметры выполнения диалога, см. перечисление QFileDialog::Option для получения дополнительной информации о флагах, которые вы можете передать.

Предупреждение: Не удаляйте parent во время выполнения диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QFileDialog.

См. также getOpenFileName(), getSaveFileName() и getExistingDirectory().

[static, since 5.2] 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())

Это удобная статическая функция, которая возвращает существующий файл, выбранный пользователем. Если пользователь нажимает «Отмена», возвращается пустая ссылка.

Функция используется аналогично QFileDialog::getOpenFileName(). В частности, parent, caption, dir, filter, selectedFilter и options используются точно так же.

Основное отличие от QFileDialog::getOpenFileName() заключается в возможности выбора пользователем удалённого файла. Вот почему тип возвращаемого значения и тип dir — QUrl.

Аргумент supportedSchemes позволяет ограничить тип URL-адресов, которые пользователь сможет выбрать. Это способ для приложения объявить протоколы, которые оно будет поддерживать для получения содержимого файла. Пустой список означает, что ограничений нет (по умолчанию). Поддержка локальных файлов («схема file») подразумевается и всегда включена; её не нужно включать в ограничения.

Если это возможно, эта статическая функция будет использовать родной диалог выбора файла, а не QFileDialog. На платформах, которые не поддерживают выбор удалённых файлов, Qt позволит выбрать только локальные файлы.

Эта функция была введена в Qt 5.2.

См. также getOpenFileName(), getOpenFileUrls(), getSaveFileUrl() и getExistingDirectoryUrl().

[static, since 5.2] 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())

Это удобная статическая функция, которая вернёт один или несколько выбранных пользователем файлов. Если пользователь нажимает «Отмена», возвращается пустой список.

Функция используется аналогично QFileDialog::getOpenFileNames(). В частности, parent, caption, dir, filter, selectedFilter и options используются точно так же.

Основное отличие от QFileDialog::getOpenFileNames() заключается в возможности выбора пользователем удалённых файлов. Вот почему тип возвращаемого значения и тип dir — соответственно QList<QUrl> и QUrl.

Аргумент supportedSchemes позволяет ограничить тип URL-адресов, которые пользователь сможет выбрать. Это способ для приложения объявить протоколы, которые оно будет поддерживать для получения содержимого файла. Пустой список означает, что ограничений нет (по умолчанию). Поддержка локальных файлов («схема file») подразумевается и всегда включена; её не нужно включать в ограничения.

Если это возможно, эта статическая функция будет использовать родной диалог выбора файла, а не QFileDialog. На платформах, которые не поддерживают выбор удалённых файлов, Qt позволит выбрать только локальные файлы.

Эта функция была введена в Qt 5.2.

См. также getOpenFileNames(), getOpenFileUrl(), getSaveFileUrl() и 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())

Это удобная статическая функция, которая возвращает имя файла, выбранное пользователем. Файл не обязательно должен существовать.

Она создаёт модальный диалог выбора файла с заданным виджетом parent. Если parent не nullptr, диалог будет показан центрированным над родительским виджетом.

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

Рабочий каталог диалога выбора файла будет установлен в dir. Если dir включает имя файла, файл будет выбран. Показываются только файлы, соответствующие фильтру filter. Выбранный фильтр установлен в selectedFilter. Параметры dir, selectedFilter и filter могут быть пустыми строками. Несколько фильтров разделяются символом «;;». Например:

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

Аргумент options содержит различные параметры выполнения диалога, см. перечисление QFileDialog::Option для получения дополнительной информации о флагах, которые вы можете передать.

Фильтр по умолчанию можно выбрать, установив selectedFilter в нужное значение.

Заголовок диалога установлен в caption. Если caption не указан, используется стандартный заголовок.

В Windows и macOS эта статическая функция будет использовать родной диалог выбора файла, а не QFileDialog.

В Windows диалог запустит блокирующий модальный цикл обработки событий, который не будет отправлять QTimers, и если parent не nullptr, то диалог будет позиционирован сразу под строкой заголовка родителя. В macOS с родным диалогом выбора файла аргумент filter игнорируется.

В Unix/X11 стандартное поведение диалога выбора файла — разрешать и следовать символам-ссылкам. Например, если /usr/tmp — это символ-ссылка на /var/tmp, диалог выбора файла изменится на /var/tmp после ввода /usr/tmp. Если options включает DontResolveSymlinks, диалог выбора файла будет обрабатывать символы-ссылки как обычные каталоги.

Предупреждение: Не удаляйте parent во время выполнения диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QFileDialog.

См. также getOpenFileName(), getOpenFileNames() и getExistingDirectory().

[static, since 5.2] 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())

Это удобная статическая функция, которая возвращает файл, выбранный пользователем. Файл не обязательно должен существовать. Если пользователь нажимает «Отмена», возвращается пустая ссылка.

Функция используется аналогично QFileDialog::getSaveFileName(). В частности, parent, caption, dir, filter, selectedFilter и options используются точно так же.

Основное отличие от QFileDialog::getSaveFileName() заключается в возможности выбора пользователем удалённого файла. Вот почему тип возвращаемого значения и тип dir — QUrl.

Аргумент supportedSchemes позволяет ограничить тип URL-адресов, которые пользователь сможет выбрать. Это способ для приложения объявить протоколы, которые оно будет поддерживать для сохранения содержимого файла. Пустой список означает, что ограничение не применяется (по умолчанию). Поддержка локальных файлов ("схема file") неявна и всегда включена; её не нужно включать в ограничение.

Когда это возможно, эта статическая функция будет использовать системный диалог выбора файла, а не QFileDialog. На платформах, которые не поддерживают выбор удаленных файлов, Qt позволит выбрать только локальные файлы.

Эта функция была введена в Qt 5.2.

См. также getSaveFileName(), getOpenFileUrl(), getOpenFileUrls() и getExistingDirectoryUrl().

QStringList QFileDialog::history() const

Возвращает историю навигации диалога выбора файла в виде списка путей.

См. также setHistory().

QAbstractFileIconProvider *QFileDialog::iconProvider() const

Возвращает поставщик иконок, используемый диалогом выбора файла.

См. также setIconProvider().

QAbstractItemDelegate *QFileDialog::itemDelegate() const

Возвращает делегат элементов, используемый для отображения элементов в представлениях в диалоге выбора файла.

См. также setItemDelegate().

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

Возвращает текст, отображаемый в диалоге выбора файла в указанной метке label.

См. также setLabelText().

[since 5.2] QStringList QFileDialog::mimeTypeFilters() const

Возвращает фильтры типов MIME, которые активны в этом диалоге выбора файла.

Эта функция была введена в Qt 5.2.

См. также setMimeTypeFilters().

QStringList QFileDialog::nameFilters() const

Возвращает фильтры типов файлов, которые активны в этом диалоге выбора файла.

См. также setNameFilters().

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

Эта функция подключает один из своих сигналов к слоту, указанному receiver и member. Конкретный сигнал зависит от filesSelected() если fileMode равен ExistingFiles и fileSelected() если fileMode что-то другое.

Сигнал будет отключен от слота, когда диалог будет закрыт.

QAbstractProxyModel *QFileDialog::proxyModel() const

Возвращает модель прокси, используемую диалогом выбора файла. По умолчанию прокси не установлен.

См. также setProxyModel().

bool QFileDialog::restoreState(const QByteArray &state)

Восстанавливает макет диалога, историю и текущую директорию до значения state.

Обычно это используется в сочетании с QSettings для восстановления размера из предыдущей сессии.

Возвращает false если есть ошибки.

[static, since 5.14] void QFileDialog::saveFileContent(const QByteArray &fileContent, const QString &fileNameHint = QString())

Это удобная статическая функция, которая сохраняет fileContent в файл, используя имя и местоположение файла, выбранные пользователем. fileNameHint может быть предоставлено для предложения имени файла пользователю.

Эта функция используется для сохранения файлов в локальной файловой системе на Qt для WebAssembly, где веб-песочница накладывает ограничения на то, как может происходить такой доступ. Ее реализация заставит браузер отобразить системный диалог выбора файла, где пользователь выбирает файл.

Также её можно использовать на других платформах, где она будет использовать QFileDialog в качестве резервного варианта.

Функция асинхронная и возвращает значение сразу.

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

Эта функция была введена в Qt 5.14.

QByteArray QFileDialog::saveState() const

Сохраняет состояние макета диалога, истории и текущей директории.

Обычно это используется в сочетании с QSettings для сохранения размера для будущей сессии. Версия хранится как часть данных.

void QFileDialog::selectFile(const QString &filename)

Выбирает заданный filename в диалоге выбора файла.

См. также selectedFiles().

[since 5.2] void QFileDialog::selectMimeTypeFilter(const QString &filter)

Устанавливает текущий фильтр типа MIME filter.

Эта функция была введена в Qt 5.2.

void QFileDialog::selectNameFilter(const QString &filter)

Устанавливает текущий фильтр типа файла filter. Несколько фильтров могут быть переданы в filter, разделяя их точками с запятой или пробелами.

См. также setNameFilter(), setNameFilters() и selectedNameFilter().

[since 5.2] void QFileDialog::selectUrl(const QUrl &url)

Выбирает заданный url в диалоге выбора файла.

Примечание: Нестандартный QFileDialog поддерживает только локальные файлы.

Эта функция была введена в Qt 5.2.

См. также selectedUrls().

QStringList QFileDialog::selectedFiles() const

Возвращает список строк, содержащих абсолютные пути выбранных файлов в диалоге. Если файлы не выбраны или режим не ExistingFiles или ExistingFile, selectedFiles() содержит текущий путь в области просмотра.

См. также selectedNameFilter() и selectFile().

[since 5.9] QString QFileDialog::selectedMimeTypeFilter() const

Возвращает тип MIME файла, выбранного пользователем в диалоге выбора файла.

Эта функция была введена в Qt 5.9.

QString QFileDialog::selectedNameFilter() const

Возвращает фильтр, выбранный пользователем в диалоге выбора файла.

См. также selectedFiles().

[since 5.2] QList<QUrl> QFileDialog::selectedUrls() const

Возвращает список URL, содержащих выбранные файлы в диалоге. Если файлы не выбраны или режим не ExistingFiles или ExistingFile, selectedUrls() содержит текущий путь в области просмотра.

Эта функция была введена в Qt 5.2.

См. также selectedNameFilter() и selectUrl().

void QFileDialog::setDirectory(const QString &directory)

Устанавливает текущую директорию диалога выбора файла.

Примечание: В iOS, если вы устанавливаете directory на QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last(), будет использован системный диалог выбора изображения для доступа к фотоальбому пользователя. Возвращённое имя файла можно загрузить с помощью QFile и связанных API. Для активации этой функции файл Info.plist, назначенный QMAKE_INFO_PLIST в файле проекта, должен содержать ключ NSPhotoLibraryUsageDescription. Смотрите документацию к Info.plist от Apple для получения дополнительной информации об этом ключе. Эта функция была добавлена в Qt 5.5.

См. также directory().

void QFileDialog::setDirectory(const QDir &directory)

Это перегруженная функция.

[since 5.2] void QFileDialog::setDirectoryUrl(const QUrl &directory)

Устанавливает текущую директорию диалога выбора файла.

Примечание: Нестандартный QFileDialog поддерживает только локальные файлы.

Примечание: В Windows можно передавать URL-адреса, представляющие один из виртуальных папок, такие как "Компьютер" или "Сеть". Это делается путём передачи QUrl с использованием схемы clsid, за которой следует значение CLSID без фигурных скобок. Например, URL clsid:374DE290-123F-4565-9164-39C4925E467B обозначает расположение загрузки. Полный список возможных значений см. в документации MSDN по KNOWNFOLDERID. Эта функция была добавлена в Qt 5.5.

Эта функция была добавлена в Qt 5.2.

См. также directoryUrl() и QUuid.

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

Устанавливает фильтр, используемый моделью, в filters. Фильтр используется для указания типа файлов, которые должны быть показаны.

См. также filter().

void QFileDialog::setHistory(const QStringList &paths)

Устанавливает историю навигации диалога выбора файла, содержащую заданные paths.

См. также history().

void QFileDialog::setIconProvider(QAbstractFileIconProvider *provider)

Устанавливает поставщика значков, используемого диалогом выбора файла, в указанный provider.

См. также iconProvider().

void QFileDialog::setItemDelegate(QAbstractItemDelegate *delegate)

Устанавливает делегат элементов, используемый для отрисовки элементов в представлениях в диалоге выбора файла, в заданный delegate.

Любой существующий делегат будет удалён, но не удалён. QFileDialog не принимает на себя владение delegate.

Предупреждение: Не следует использовать один и тот же экземпляр делегата для нескольких представлений. Это может привести к некорректной или неинтуитивной работе с редактированием, так как каждое представление, подключенное к заданному делегату, может получить сигнал closeEditor() и попытаться получить доступ к, изменить или закрыть редактор, который уже был закрыт.

Обратите внимание, что используемая модель — QFileSystemModel. Она имеет пользовательские роли данных элементов, которые описываются перечислением Roles. Если вам нужны только пользовательские значки, можно использовать QFileIconProvider.

См. также itemDelegate(), setIconProvider() и QFileSystemModel.

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

Устанавливает text, отображаемый в диалоге выбора файла, в указанной label.

См. также labelText().

[since 5.2] void QFileDialog::setMimeTypeFilters(const QStringList &filters)

Устанавливает filters, используемые в диалоге выбора файла, из списка типов MIME.

Удобный метод для setNameFilters(). Использует QMimeType для создания фильтра имени из шаблонов глобального поиска и описания, определённых в каждом типе MIME.

Используйте application/octet-stream для фильтра «Все файлы (*)», так как это базовый тип MIME для всех файлов.

Вызов setMimeTypeFilters перезаписывает любые ранее установленные фильтры имён и изменяет возвращаемое значение 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();

Эта функция была добавлена в Qt 5.2.

См. также mimeTypeFilters().

void QFileDialog::setNameFilter(const QString &filter)

Устанавливает фильтр, используемый в диалоге выбора файла, в заданный filter.

Если filter содержит пару скобок, содержащих один или несколько шаблонов подстановок имён файлов, разделённых пробелами, то в качестве фильтра используется только текст, находящийся в скобках. Это означает, что все эти вызовы эквивалентны:

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

Примечание: В родном диалоге выбора файлов Android используется тип MIME, соответствующий заданному фильтру имени, так как поддерживаются только типы MIME.

См. также setMimeTypeFilters() и setNameFilters().

void QFileDialog::setNameFilters(const QStringList &filters)

Устанавливает filters, используемые в диалоге выбора файла.

Обратите внимание, что фильтр *.* не является переносимым, потому что историческое предположение о том, что расширение файла определяет тип файла, не является согласованным на всех операционных системах. Возможно наличие файла без точки в его имени (например, Makefile). В родном диалоге выбора файлов Windows *.* будет соответствовать таким файлам, в то время как в других типах диалогов он может не соответствовать. Поэтому лучше использовать *, если вы хотите выбрать любой файл.

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

setMimeTypeFilters() имеет преимущество в предоставлении всех возможных фильтров имён для каждого типа файла. Например, изображения JPEG имеют три возможных расширения; если ваше приложение может открывать такие файлы, выбор типа MIME image/jpeg в качестве фильтра позволит вам открыть все из них.

См. также nameFilters().

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

Устанавливает заданный option в состояние включения, если on равно true; в противном случае, сбрасывает заданный option.

Параметры (особенно параметр DontUseNativeDialogs) должны быть установлены перед изменением свойств диалога или отображением диалога.

Установка параметров во время видимости диалога не гарантирует немедленного эффекта на диалоге (в зависимости от параметра и платформы).

Установка параметров после изменения других свойств может привести к тому, что эти значения не будут иметь никакого эффекта.

См. также options и testOption().

void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel)

Устанавливает модель для представлений в заданный proxyModel. Это полезно, если вы хотите изменить базовую модель; например, добавить столбцы, отфильтровать данные или добавить диски.

Любой существующий прокси-модель будет удалён, но не удалён. Диалог выбора файла примет на себя владение proxyModel.

См. также proxyModel().

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

Устанавливает urls, расположенные в боковой панели.

Например:

    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()) {
        // ...
    }

Диалог выбора файла будет выглядеть следующим образом:

См. также sidebarUrls().

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

Переопределяет: QDialog::setVisible(bool visible).

QList<QUrl> QFileDialog::sidebarUrls() const

Возвращает список URL-адресов, которые в настоящее время находятся в боковой панели.

См. также setSidebarUrls().

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

Возвращает true если заданный option включён; в противном случае возвращает false.

См. также options и setOption().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qfiledialog.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API