Класс 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, ..., DontUseCustomDirectoryIcons } |
| флаги | Options |
| перечисление | ViewMode { Detail, List } |
Свойства
|
|
Открытые функции
| 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()) |
Переопределённые защищённые функции
| 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, Стандартные диалоги (Пример) и Пример приложения.
Документация по типам членов
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().
END_OF_DOCUMENT_MARKERДокументация по свойствам
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.
void QFileDialog::currentChanged(const QString &path)
При изменении текущего файла для локальных операций генерируется этот сигнал с новым именем файла в качестве параметра path.
См. такжеfilesSelected().
void QFileDialog::currentUrlChanged(const QUrl &url)
При изменении текущего файла генерируется этот сигнал с новым URL файла в качестве параметра url.
Эта функция была введена в Qt 5.2.
См. такжеurlsSelected().
void QFileDialog::directoryEntered(const QString &directory)
Этот сигнал генерируется для локальных операций, когда пользователь входит в directory.
Эта функция была введена в Qt 4.3.
void QFileDialog::directoryUrlEntered(const QUrl &directory)
Этот сигнал генерируется, когда пользователь входит в directory.
Эта функция была введена в Qt 5.2.
void QFileDialog::fileSelected(const QString &file)
При изменении выбора для локальных операций и подтверждении диалога генерируется этот сигнал с выбранным (возможно пустым) file.
См. такжеcurrentChanged() и QDialog::Accepted.
void QFileDialog::filesSelected(const QStringList &selected)
При изменении выбора для локальных операций и подтверждении диалога генерируется этот сигнал со списком (возможно пустым) выбранных selected файлов.
См. такжеcurrentChanged() и QDialog::Accepted.
void QFileDialog::filterSelected(const QString &filter)
Этот сигнал генерируется, когда пользователь выбирает filter.
Эта функция была введена в Qt 4.3.
void QFileDialog::urlSelected(const QUrl &url)
При изменении выбора и подтверждении диалога генерируется этот сигнал с выбранным (возможно пустым) url.
Эта функция была введена в Qt 5.2.
См. такжеcurrentUrlChanged() и QDialog::Accepted.
void QFileDialog::urlsSelected(const QList<QUrl> &urls)
При изменении выбора и подтверждении диалога генерируется этот сигнал со списком (возможно пустым) выбранных urls.
Эта функция была введена в Qt 5.2.
См. такжеcurrentUrlChanged() и QDialog::Accepted.
QFileDialog::~QFileDialog()
Уничтожает диалог выбора файла.
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)
Это удобная статическая функция, которая возвращает выбранный пользователем существующий каталог.
Эта функция создаёт модальный диалог выбора файлов с заданным виджетом 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 для WebAssembly, где веб-песочница накладывает ограничения на то, как может произойти такой доступ. Её реализация заставит браузер отобразить родной диалог выбора файла, где пользователь выберет файл.
Она также может быть использована на других платформах, где она будет использовать QFileDialog по умолчанию.
Функция асинхронная и возвращает немедленно. Обратный вызов fileOpenCompleted будет вызван, когда файл будет выбран, и его содержимое будет считано в память.
Эта функция была добавлена в 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())
Это удобная статическая функция, которая возвращает выбранный пользователем существующий файл. Если пользователь нажимает «Отмена», она возвращает пустую строку.
Функция создаёт модальный диалог выбора файлов с заданным виджетом parent. Если parent не nullptr, диалог будет отображён, центрированный над родительским виджетом.
Рабочий каталог диалога будет установлен в dir. Если dir содержит имя файла, файл будет выбран. Отображаются только файлы, соответствующие заданному filter. Выбранный фильтр устанавливается в selectedFilter. Параметры dir, selectedFilter и filter могут быть пустыми строками. Если вам нужно несколько фильтров, разделяйте их через «;;», например:
/var/tmp
Аргумент 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().
END_OF_DOCUMENT_MARKER
[static] Список строк 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())
Это удобная статическая функция, возвращающая выбранный пользователем существующий файл. Если пользователь нажимает Отмена, она возвращает пустую ссылку.
Функция используется аналогично 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] Список<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 — соответственно Список<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())
Это удобная статическая функция, которая возвращает файл, выбранный пользователем. Файл не обязательно должен существовать. Если пользователь нажмёт Отмена, функция вернёт пустой URL.
Функция используется аналогично 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.
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
Возвращает список URL, содержащих выбранные файлы в диалоге. Если не выбрано ни одного файла, или режим не ExistingFiles или ExistingFile, selectedUrls() содержит текущий путь в области просмотра.
Функция была добавлена в Qt 5.2.
См. также selectedNameFilter() и selectUrl().
void QFileDialog::setDirectory(const QString &directory)
Устанавливает текущую директорию диалога выбора файла.
Примечание: В iOS, если вы установите directory в QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last(), будет использован родной диалог выбора изображений для доступа к фотоальбому пользователя. Имя файла, которое будет возвращено, можно загрузить, используя QFile и родственные API. Для активации этой функции в файле проекта необходимо установить ключ NSPhotoLibraryUsageDescription, назначенный в Info.plist. Смотрите документацию 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)
Устанавливает отображаемый в диалоговом окне выбора файла text для указанной метки label.
См. также labelText().
void QFileDialog::setMimeTypeFilters(const QStringList &filters)
Устанавливает filters, используемые в диалоговом окне выбора файла, из списка типов MIME.
Удобный метод для setNameFilters(). Использует QMimeType для создания фильтра имени из шаблонов глобальных переменных и описания, определенных в каждом типе MIME.
Используйте application/octet-stream для фильтра "Все файлы (*)", так как это базовый тип MIME для всех файлов.
Вызов setMimeTypeFilters переопределяет любые ранее установленные фильтры имен и изменяет возвращаемое значение nameFilters().
QStringList mimeTypeFilters;
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++"); Эта функция была добавлена в Qt 4.4.
См. также setMimeTypeFilters() и setNameFilters().
void QFileDialog::setNameFilters(const QStringList &filters)
Устанавливает filters, используемые в диалоговом окне выбора файла.
Обратите внимание, что фильтр *.* не переносим, потому что историческое предположение о том, что расширение файла определяет тип файла, не является согласованным на всех операционных системах. Возможно наличие файла без точки в его имени (например, Makefile). В родном диалоговом окне выбора файла Windows *.* будет соответствовать таким файлам, в то время как в других типах диалоговых окон выбора файла это может быть не так. Поэтому лучше использовать *, если вы хотите выбрать любой файл.
QStringList filters;
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.13/qfiledialog.html