Spec-Zone.ru › Qt

Класс 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

Перечисление QFileDialog::DialogLabel

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

Перечисление QFileDialog::FileMode

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

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

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

Перечисление QFileDialog::Optionфлаги 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.

Перечисление 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 DialogLabels. После вызова 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. Для работы с родным диалогом Windows/macOS необходимо установить флаг 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().

QStringList QFileDialog::mimeTypeFilters() const

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

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

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

QStringList QFileDialog::nameFilters() const

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

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

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

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

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

QAbstractProxyModel *QFileDialog::proxyModel() const

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

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

bool QFileDialog::restoreState(const QByteArray &state)

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

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

Возвращает false при ошибках

void QFileDialog::saveFileContent(const QByteArray &fileContent, const QString &fileNameHint = QString())

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

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

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

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

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

QByteArray QFileDialog::saveState() const

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

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

void QFileDialog::selectFile(const QString &filename)

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

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

void QFileDialog::selectMimeTypeFilter(const QString &filter)

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

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

void QFileDialog::selectNameFilter(const QString &filter)

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

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

void QFileDialog::selectUrl(const QUrl &url)

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

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

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

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

QStringList QFileDialog::selectedFiles() const

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

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

QString QFileDialog::selectedMimeTypeFilter() const

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

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

QString QFileDialog::selectedNameFilter() const

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

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

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. См. документацию Apple по Info.plist для получения дополнительной информации об этом ключе. Эта функция была добавлена в Qt 5.5.

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

void QFileDialog::setDirectory(const QDir &directory)

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

void QFileDialog::setDirectoryUrl(const QUrl &directory)

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

Примечание: Несистемный 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 для создания фильтра имени из шаблонов glob и описаний, определённых в каждом типе 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.2/qfiledialog.html

Spec-Zone.ru

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