Тип 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, диалог будет отображаться по центру над окном, содержащим элемент, или над окном, которое вы объявили.
Реализация FileDialog будет платформенным диалоговым окном, если это возможно. Если это невозможно, тогда он попытается создать экземпляр QFileDialog. Если это также невозможно, то он вернётся к реализации QML, DefaultFileDialog.qml. В этом случае вы можете настроить внешний вид, отредактировав этот файл. DefaultFileDialog.qml содержит прямоугольник для размещения содержимого диалогового окна, потому что некоторые встроенные системы не поддерживают несколько окон верхнего уровня. Когда диалоговое окно становится видимым, оно автоматически будет обернуто в окно, если это возможно, или просто переродится поверх основного окна, если может быть только одно окно.
Реализация QML имеет боковую панель, содержащую shortcuts к общим расположениям, специфичным для платформы, и настраиваемым пользователем избранным. Она использует прикладные настройки settings для хранения избранного пользователя, а также других настраиваемых пользователем состояний, таких как отображение или нет боковой панели, положение разделителей и размер диалогового окна. Настройки хранятся в разделе QQControlsFileDialog прикладных QSettings. Например, при тестировании приложения с помощью инструмента qml, раздел QQControlsFileDialog будет создан в файле настроек Qml Runtime (или записи реестра). Если приложение запускается через пользовательскую функцию C++ main(), рекомендуется установить имя, организацию и домен для управления местоположением настроек приложения. Если вы используете объекты Settings в других частях приложения, они будут сохранены в других разделах того же файла.
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.14/qml-qtquick-dialogs-filedialog.html