Тип 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 к общим местоположениям, специфичным для платформы, и настраиваемые пользователем избранные места. Она использует специфичные для приложения настройки для сохранения избранных мест пользователя, а также других настраиваемых пользователем состояний, таких как видимость боковой панели, положение разделителей и размер диалога. Настройки хранятся в разделе QQControlsFileDialog специфичных для приложения QSettings. Например, при тестировании приложения с помощью инструмента qml, раздел QQControlsFileDialog будет создан в файле настроек Qml Runtime (или записи реестра). Если приложение запускается через пользовательскую функцию C++ main(), рекомендуется установить имя, организацию и домен, чтобы управлять расположением настроек приложения. Если вы используете объекты Settings в других частях приложения, они будут храниться в других разделах того же файла.
QFileDialog хранит свои настройки глобально, а не на уровне приложения. Платформенные диалоги выбора файлов могут или могут не хранить настройки различными способами, зависящими от платформы.
Документация по свойствам
defaultSuffix : строка
Это свойство содержит суффикс, добавляемый к имени файла, если другой суффикс не был указан.
Это свойство определяет строку, которая будет добавлена к имени файла, если у него ещё нет суффикса. Суффикс обычно используется для указания типа файла (например, "txt" обозначает текстовый файл).
Если первый символ является точкой ('.') , она удаляется.
Это свойство было введено в Qt 5.10.
fileUrl : url
Путь к файлу, который выбрал пользователь.
Примечание: Это свойство устанавливается только если был выбран ровно один файл. Во всех других случаях оно будет пустым.
См. также fileUrls.
fileUrls : список<url>
Список путей к файлам, которые выбрал пользователь.
folder : url
Путь к текущему выбранному каталогу. Установка этого свойства перед вызовом open() приведет к тому, что браузер файлов будет изначально расположен в указанном каталоге.
Значение этого свойства также обновляется после закрытия диалога.
По умолчанию url пуст.
Примечание: В iOS, если вы установите folder на shortcuts.pictures, будет использоваться собственный диалог выбора изображений для доступа к фотоальбому пользователя. Возвращённый URL можно установить как source для Image. Для активации этой функции файл Info.plist, назначенный QMAKE_INFO_PLIST в файле проекта, должен содержать ключ NSPhotoLibraryUsageDescription. См. документацию Apple по Info.plist для получения дополнительной информации об этом ключе. Эта функция была добавлена в Qt 5.5.
См. также shortcuts.
modality : Qt::WindowModality
Определяет, должен ли диалог отображаться в модальном режиме по отношению к окну, содержащему родительский элемент диалога, модальном режиме по отношению ко всему приложению или в немодальном режиме.
По умолчанию это Qt::NonModal.
Модальность не означает, что есть какие-либо блокирующие вызовы ожидания принятия или отклонения диалога; это только означает, что пользователю будет запрещено взаимодействовать с родительским окном и/или окнами приложения одновременно. Вероятно, вам понадобится написать обработчик 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 в настоящее время выбран.
END_OF_DOCUMENT_MARKER ```Это свойство можно установить перед отображением диалога, чтобы установить фильтр имён по умолчанию, а также можно установить, когда диалог отображается, чтобы установить текущий фильтр имён. Оно также обновляется, когда пользователь выбирает другой фильтр.
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.13/qml-qtquick-dialogs-filedialog.html