Spec-Zone.ru › Qt 5.15

Класс QFileDialog

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

Заголовок: #include <QFileDialog>
qmake: QT += widgets
Наследует: QDialog
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Типы публичного доступа

Перечисление AcceptMode { AcceptOpen, AcceptSave }
Перечисление DialogLabel { LookIn, FileName, FileType, Accept, Reject }
Перечисление FileMode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly }
Перечисление 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
QFileIconProvider * 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(QFileIconProvider *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().

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

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

См. также QDir, QFileInfo, QFile, QColorDialog, QFontDialog, Standard Dialogs Example, и Application Example.

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

enum 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

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

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

Это значение устарело с Qt 4.5:

Постоянная Значение Описание
QFileDialog::DirectoryOnly 4 Используйте Directory и setOption(ShowDirsOnly, true) вместо этого.

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

enum QFileDialog::Optionflags QFileDialog::Options

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

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

Постоянная Значение Описание
QFileDialog::ReadOnly 0x00000020 Указывает, что модель является только для чтения.
QFileDialog::HideNameFilterDetails 0x00000040 Указывает, скрыты или нет подробности фильтра имен файлов.
QFileDialog::DontUseSheet 0x00000008 В предыдущих версиях Qt статические функции создавали лист по умолчанию, если статическая функция получала родителя. Это больше не поддерживается и ничего не делает в Qt 4.5. Статические функции всегда будут модальными диалогами приложения. Если вы хотите использовать листы, используйте QFileDialog::open() вместо этого.
QFileDialog::DontUseCustomDirectoryIcons 0x00000080 Всегда использовать значок каталога по умолчанию. Некоторые платформы позволяют пользователю установить другой значок. Поиск пользовательского значка сильно влияет на производительность при работе с сетью или съемными носителями. Установка этого значения включит параметр 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) следует устанавливать перед изменением свойств диалога или отображением диалога.

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

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

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

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

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

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

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] void QFileDialog::currentUrlChanged(const QUrl &url)

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

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

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

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

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

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

[signal] 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.

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

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

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

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

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

[signal] 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().

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

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

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

См. также 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 не поддерживает отображение файлов в диалоге выбора каталога. Вам необходимо передать DontUseNativeDialog для отображения файлов с помощью QFileDialog.

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

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

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

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

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

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

Функция используется аналогично 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] 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] 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().

QFileIconProvider *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

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

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

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

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

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

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

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

QAbstractProxyModel *QFileDialog::proxyModel() const

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

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

bool QFileDialog::restoreState(const QByteArray &state)

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

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

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

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

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

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

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

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

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

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

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

QByteArray QFileDialog::saveState() const

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

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

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

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, разделяя их точкой с запятой или пробелами.

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

См. также 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

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

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

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

QList<QUrl> QFileDialog::selectedUrls() const

Возвращает список ссылок, содержащих выбранные файлы в диалоге. Если файлы не выбраны или режим не 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)

Это перегруженный метод.

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. Фильтр используется для указания типа файлов, которые должны быть показаны.

Этот метод был введен в Qt 4.4.

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

void QFileDialog::setHistory(const QStringList &paths)

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

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

void QFileDialog::setIconProvider(QFileIconProvider *provider)

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

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

void QFileDialog::setItemDelegate(QAbstractItemDelegate *delegate)

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

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

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

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

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

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

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

void QFileDialog::setMimeTypeFilters(const QStringList &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.

Этот метод был введен в Qt 4.4.

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

void QFileDialog::setNameFilters(const QStringList &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 в качестве фильтра позволит вам открыть все из них.

Этот метод был введен в Qt 4.4.

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

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

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

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

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

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

Этот метод был введен в Qt 4.5.

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

void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel)

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

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

Этот метод был введен в Qt 4.3.

См. также 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()) {
        // ...
    }

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

Этот метод был введен в Qt 4.3.

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

void QFileDialog::setVisible(bool visible)

Реализует: QDialog::setVisible(bool visible).

QList<QUrl> QFileDialog::sidebarUrls() const

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

Этот метод был введен в Qt 4.3.

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

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

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

Этот метод был введен в Qt 4.5.

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

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

Spec-Zone.ru

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