Тип QML FileDialog
Компонент диалога для выбора файлов из локальной файловой системы. Подробнее...
| Оператор импорта: | import QtQuick.Dialogs 1.3 |
| С момента: | Qt 5.1 |
Свойства
- defaultSuffix : строка
- fileUrl : url
- fileUrls : список<url>
- folder : url
- modality : Qt::WindowModality
- nameFilters : список<строка>
- selectExisting : bool
- selectFolder : bool
- selectMultiple : bool
- selectedNameFilter : строка
- shortcuts : Объект
- sidebarVisible : bool
- title : строка
- visible : bool
Методы
Подробное описание
FileDialog предоставляет базовый выбор файла: позволяет пользователю выбрать существующие файлы и/или каталоги или создать новые имена файлов. Диалог изначально невидим. Сначала необходимо задать нужные свойства, а затем установить visible в true или вызвать open().
Вот минимальный пример открытия диалога выбора файла и выхода после выбора файла пользователем:
import QtQuick 2.2
import QtQuick.Dialogs 1.0
FileDialog {
id: fileDialog
title: "Please choose a file"
folder: shortcuts.home
onAccepted: {
console.log("You chose: " + fileDialog.fileUrls)
Qt.quit()
}
onRejected: {
console.log("Canceled")
Qt.quit()
}
Component.onCompleted: visible = true
} Окно FileDialog автоматически является временным для своего родительского окна. Таким образом, независимо от того, объявляете ли вы диалог внутри Item или внутри Window, диалог будет отображаться по центру над окном, содержащим элемент, или над окном Window, которое вы объявили.
Реализация FileDialog будет использовать платформенный диалог выбора файла, если это возможно. Если это невозможно, она попытается создать экземпляр QFileDialog. Если это также невозможно, она перейдёт к реализации на QML, DefaultFileDialog.qml. В этом случае вы можете настроить внешний вид, отредактировав этот файл. DefaultFileDialog.qml содержит прямоугольник для размещения содержимого диалога, поскольку некоторые встраиваемые системы не поддерживают несколько окон верхнего уровня. Когда диалог становится видимым, он автоматически будет обернут в Window, если это возможно, или просто переродится поверх основного окна, если может быть только одно окно.
Реализация QML имеет боковую панель, содержащую shortcuts к общим местоположениям, специфичным для платформы, и изменяемым пользователем избранным. Она использует прикладные настройки настроек для хранения избранного пользователя, а также других изменяемых пользователем состояний, таких как отображение или скрытие боковой панели, положение разделителей и размер диалога. Настройки хранятся в разделе QQControlsFileDialog прикладных настроек QSettings. Например, при тестировании приложения с помощью инструмента qml, раздел QQControlsFileDialog будет создан в файле настроек Qml Runtime (или записи реестра). Если приложение запускается с помощью пользовательской функции C++ main(), рекомендуется установить имя, организацию и домен, чтобы контролировать расположение настроек приложения. Если вы используете объекты настроек в других частях приложения, они будут сохранены в других разделах того же файла.
QFileDialog хранит свои настройки глобально вместо хранения на уровне каждого приложения. Платформенно-родные диалоги выбора файла могут или не могут хранить настройки различными способами, зависящими от платформы.
Документация по свойствам
defaultSuffix : строка
Это свойство содержит суффикс, добавляемый к имени файла, если не был указан другой суффикс.
Это свойство задаёт строку, которая будет добавлена к имени файла, если у него ещё нет суффикса. Суффикс обычно используется для указания типа файла (например, «txt» указывает текстовый файл).
Если первый символ является точкой ('.'), она удаляется.
Это свойство было введено в Qt 5.10.
fileUrl : url
Путь к файлу, выбранному пользователем.
Примечание: Это свойство устанавливается только при выборе ровно одного файла. Во всех других случаях оно будет пустым.
См. также fileUrls.
Список путей к файлам, выбранным пользователем.
folder : url
Путь к текущей выбранной папке. Установка этого свойства перед вызовом open() приведет к начальному позиционированию обозревателя файлов в указанной папке.
Значение этого свойства также обновляется после закрытия диалога.
По умолчанию url пустой.
Примечание: В iOS, если вы установите folder в shortcuts.pictures, будет использован родной диалог выбора изображения для доступа к фотоальбому пользователя. Возвращённый URL можно установить как source для Image. Для активации этой функции файл Info.plist, присвоенный QMAKE_INFO_PLIST в файле проекта, должен содержать ключ NSPhotoLibraryUsageDescription. См. документацию по Info.plist от Apple для получения дополнительной информации об этом ключе. Эта функция была добавлена в Qt 5.5.
См. также shortcuts.
modality : Qt::WindowModality
Определяет, должен ли диалог быть модальным по отношению к окну, содержащему родительский элемент диалога, модальным по отношению ко всему приложению или немодальным.
По умолчанию это Qt.WindowModal.
Модальность не означает, что есть какие-либо блокирующие вызовы, ожидающие принятия или отклонения диалога; это лишь означает, что пользователю будет запрещено взаимодействовать с родительским окном и/или окнами приложения одновременно. Вам, вероятно, нужно написать обработчик onAccepted, чтобы фактически загрузить или сохранить выбранный файл.
Список строк, используемых в качестве фильтров имён файлов. Каждая строка может быть списком фильтров, разделённых пробелами; фильтры могут включать подстановочные знаки ? и *. Список фильтров также может быть заключён в скобки, и может быть предоставлено текстовое описание фильтра.
Например:
FileDialog {
nameFilters: [ "Image files (*.jpg *.png)", "All files (*)" ]
} Примечание: Папки не исключаются фильтрами.
См. также selectedNameFilter.
selectExisting : bool
Определяет, можно ли выбирать только существующие файлы или каталоги.
По умолчанию это true. Это свойство должно быть установлено в нужное значение до открытия диалога. Установка этого свойства в false означает, что диалог предназначен для присвоения имени файлу для сохранения чего-либо или для присвоения имени создаваемой папке; следовательно, selectMultiple должен быть false.
selectFolder : bool
Определяет, должен ли выбранный элемент быть папкой.
По умолчанию это false. Это свойство должно быть установлено в нужное значение до открытия диалога. Установка этого свойства в true подразумевает, что selectMultiple должен быть false и selectExisting должен быть true.
selectMultiple : bool
Определяет, можно ли выбрать более одного имени файла.
По умолчанию это false. Это свойство должно быть установлено в нужное значение до открытия диалога. Установка этого свойства в true подразумевает, что selectExisting должен быть true.
selectedNameFilter : строка
Какой из nameFilters выбран в данный момент.
Это свойство можно установить до того, как диалог станет видимым, чтобы установить значение фильтра по умолчанию, а также можно изменить его во время видимости диалога для изменения текущего фильтра. Оно также обновляется, когда пользователь выбирает другой фильтр.
shortcuts : Объект
Словарь некоторых полезных путей из QStandardPaths в их URL-адреса. Каждый путь проверяется на существование на компьютере пользователя перед добавлением в этот список во время создания FileDialog.
desktop |
QStandardPaths::DesktopLocation | Папка рабочего стола пользователя. |
documents |
QStandardPaths::DocumentsLocation | Папка с документами пользователя. |
home |
QStandardPaths::HomeLocation | Домашняя папка пользователя. |
music |
QStandardPaths::MusicLocation | Папка с музыкальными или другими аудиофайлами пользователя. |
movies |
QStandardPaths::MoviesLocation | Папка с фильмами и видео пользователя. |
pictures |
QStandardPaths::PicturesLocation | Папка с фотографиями или изображениями пользователя. Это всегда какой-то file: URL; но на некоторых платформах он будет специализированным, так что FileDialog будет реализован как диалог-просмотр галереи. |
Например, shortcuts.home предоставит URL-адрес домашней папки пользователя.
Это свойство было введено в Qt 5.5.
sidebarVisible : bool
Это свойство определяет, отображается ли боковая панель в диалоговом окне, содержащем ярлыки и закладки. По умолчанию оно зависит от настроек, сохранённых в разделе QQControlsFileDialog настроек приложения Settings.
Это свойство было введено в Qt 5.4.
title : string
Заголовок диалогового окна.
visible : bool
Это свойство определяет, отображается ли диалоговое окно. По умолчанию оно равно false.
См. также modality.
Документация по методам
void close()
Закрывает диалоговое окно.
void open()
Отображает диалоговое окно пользователю. Это эквивалентно установке visible в значение true.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qml-qtquick-dialogs-filedialog.html