Тип QML FileDialog
Компонент диалога для выбора файлов из локальной файловой системы. Подробнее...
| Заявление об импорте: | import QtQuick.Dialogs 1.2 |
| С момента: | Qt 5.1 |
Свойства
- 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 содержит прямоугольник для размещения содержимого диалога, поскольку некоторые встроенные системы не поддерживают несколько окон верхнего уровня. Когда диалог становится видимым, он автоматически будет заключён в окно, если это возможно, или просто переродится поверх основного окна, если может быть только одно окно.
QML-реализация имеет боковую панель, содержащую shortcuts к общим местоположениям, специфичным для платформы, а также пользовательские избранные. Она использует приложению-специфичные настройки для хранения избранных пользователем, а также других изменяемых пользователем состояний, таких как показ или скрытие боковой панели, расположение разделителей и размер диалога. Настройки хранятся в разделе QQControlsFileDialog приложению-специфичных QSettings. Например, при тестировании приложения с помощью инструмента qml раздел QQControlsFileDialog будет создан в файле настроек Qml Runtime (или записи реестра). Если приложение запускается через пользовательскую функцию C++ main(), рекомендуется установить имя, организацию и домен для управления местоположением настроек приложения. Если вы используете объекты Settings в других частях приложения, они будут храниться в других разделах того же файла.
QFileDialog хранит свои настройки глобально, а не на основе приложения. Платформенные диалоги выбора файлов могут или не могут хранить настройки различными способами, зависящими от платформы.
Документация свойств
fileUrl : url
Путь к файлу, который выбрал пользователь.
Примечание: Это свойство устанавливается только если был выбран ровно один файл. Во всех остальных случаях оно будет пустым.
См. также fileUrls.
fileUrls : список<url>
Список путей к файлам, которые выбрал пользователь.
folder : url
Путь к текущей выбранной папке. Установка этого свойства перед вызовом open() приведет к тому, что файловый браузер будет первоначально размещён в указанной папке.
Значение этого свойства также обновляется после закрытия диалога.
По умолчанию url пуст.
Примечание: В iOS, если вы установите folder на shortcuts.pictures, будет использован собственный диалог выбора изображения для доступа к фотоальбому пользователя. Возвращённый URL может быть установлен как source для Image. Эта функция была добавлена в Qt 5.5.
См. также shortcuts.
modality : Qt::WindowModality
Определяет, должен ли диалог отображаться в модальном режиме относительно окна, содержащего родительский элемент диалога, в модальном режиме относительно всего приложения или в немодальном режиме.
По умолчанию это Qt.WindowModal.
Модальность не означает, что есть какие-либо блокирующие вызовы ожидания, пока диалог не будет принят или отклонен; она только предотвращает взаимодействие пользователя с родительским окном и/или окнами приложения одновременно. Вероятно, вам нужно написать обработчик onAccepted для фактического загрузки или сохранения выбранного файла.
nameFilters : список<строка>
Список строк, используемых в качестве фильтров имен файлов. Каждая строка может быть списком фильтров, разделённых пробелом; фильтры могут включать символы ? и * в качестве шаблонов. Список фильтров также может быть заключён в скобки, и может быть предоставлено текстовое описание фильтра.
Например:
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 домашнего каталога пользователя.
Это свойство QML было введено в Qt 5.5.
sidebarVisible : bool
Это свойство указывает, отображается ли боковая панель в диалоге, содержащем ярлыки и закладки. По умолчанию оно зависит от настроек, сохранённых в разделе QQControlsFileDialog настроек приложения Settings.
Это свойство QML было введено в 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.9/qml-qtquick-dialogs-filedialog.html