Тип QML FileDialog
Нативный диалог выбора файла. Подробнее...
| Оператор импорта: | import Qt.labs.platform 1.1 |
| С момента: | Qt 5.8 |
| Наследует: |
Свойства
- acceptLabel : строка
- currentFile : url
- currentFiles : список<url>
- defaultSuffix : строка
- file : url
- fileMode : перечисление
- files : список<url>
- folder : url
- nameFilters : список<строка>
- options : флаги
- rejectLabel : строка
-
selectedNameFilter
- selectedNameFilter.extensions : список<строка>
- selectedNameFilter.index : целое
- selectedNameFilter.name : строка
Подробное описание
Тип FileDialog предоставляет API QML для нативных диалогов выбора файлов на платформах.
Для отображения диалога выбора файла создайте экземпляр FileDialog, задайте нужные свойства и вызовите open(). Свойства currentFile или currentFiles могут использоваться для определения текущих выбранных файлов в диалоге. Свойства file и files обновляются только после окончательного выбора, сделанного пользователем.
MenuItem {
text: "Open..."
onTriggered: fileDialog.open()
}
FileDialog {
id: fileDialog
currentFile: document.source
folder: StandardPaths.writableLocation(StandardPaths.DocumentsLocation)
}
MyDocument {
id: document
source: fileDialog.file
} Доступность
Нативный диалог выбора файла в настоящее время доступен на следующих платформах:
- iOS
- Linux (при использовании темы платформы GTK+)
- macOS
- Windows
- WinRT
Модуль Qt Labs Platform использует Qt Widgets в качестве резервного варианта на платформах, на которых нет нативной реализации. Поэтому приложения, которые используют типы из модуля Qt Labs Platform, должны ссылаться на QtWidgets и использовать QApplication вместо QGuiApplication.
Для ссылки на библиотеку QtWidgets добавьте следующее в ваш файл проекта qmake:
QT += widgets
Создайте экземпляр QApplication в main():
#include <QApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
} Примечание: Типы в модулях Qt.labs не гарантируют совместимость в будущих версиях.
См. также FolderDialog и StandardPaths.
Документация по свойствам
acceptLabel : строка
Это свойство содержит текст метки, отображаемой на кнопке, которая подтверждает диалог.
При установке в пустую строку используется метка по умолчанию для платформы. Метка по умолчанию обычно Открыть или Сохранить в зависимости от того, в каком режиме fileMode используется диалог.
Значение по умолчанию — пустая строка.
См. также rejectLabel.
currentFile : url
Это свойство содержит текущий выбранный файл в диалоге.
В отличие от свойства file, это свойство обновляется во время выбора пользователем файлов в диалоге, даже до окончательного выбора.
См. также file и currentFiles.
Это свойство содержит текущие выбранные файлы в диалоге.
В отличие от свойства files, это свойство обновляется во время выбора пользователем файлов в диалоге, даже до окончательного выбора.
См. также files и currentFile.
defaultSuffix : строка
Это свойство содержит суффикс, который добавляется к выбранным файлам, у которых нет указанного суффикса. Суффикс обычно используется для указания типа файла (например, "txt" указывает текстовый файл).
Если первый символ — точка ('.') — она удаляется.
file : url
Это свойство содержит окончательно выбранный файл.
В отличие от свойства currentFile, это свойство не обновляется во время выбора файлов пользователем в диалоге, а только после окончательного выбора. То есть, когда пользователь нажимает «ОК», чтобы принять файл. В качестве альтернативы можно обработать сигнал accepted(), чтобы получить окончательный выбор.
См. также currentFile и accepted().
fileMode : перечисление
Это свойство содержит режим диалога.
Доступные значения:
| Константа | Описание |
|---|---|
FileDialog.OpenFile |
Диалог используется для выбора существующего файла (по умолчанию). |
FileDialog.OpenFiles |
Диалог используется для выбора нескольких существующих файлов. |
FileDialog.SaveFile |
Диалог используется для выбора любого файла. Файл не обязательно должен существовать. |
Это свойство содержит окончательно выбранные файлы.
В отличие от свойства currentFiles, это свойство не обновляется во время выбора файлов пользователем в диалоге, а только после окончательного выбора. То есть, когда пользователь нажимает «ОК», чтобы принять файлы. В качестве альтернативы можно обработать сигнал accepted(), чтобы получить окончательный выбор.
См. также currentFiles и accepted().
folder : url
Это свойство содержит папку, в которой выбираются файлы. Для выбора папки используйте FolderDialog вместо этого.
См. также FolderDialog.
Это свойство содержит фильтры, которые ограничивают типы файлов, которые можно выбрать.
FileDialog {
nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
} Примечание: *.* — не переносимый фильтр, так как историческое предположение о том, что расширение файла определяет тип файла, не согласуется на каждой операционной системе. Возможно наличие файла без точки в имени (например, Makefile). В нативном диалоге Windows *.* будет соответствовать таким файлам, тогда как в других типах диалогов может не соответствовать. Поэтому лучше использовать *, если вы хотите выбрать любой файл.
См. также selectedNameFilter.
options : флаги
Это свойство содержит различные параметры, которые влияют на внешний вид диалога.
По умолчанию все параметры отключены.
Параметры следует задавать до отображения диалога. Установка их во время видимости диалога не гарантирует мгновенного эффекта на диалог (в зависимости от параметра и платформы).
Доступные параметры:
| Константа | Описание |
|---|---|
FileDialog.DontResolveSymlinks |
Не разрешать переходы по символическим ссылкам в диалоге выбора файла. По умолчанию переходы по символическим ссылкам разрешены. |
FileDialog.DontConfirmOverwrite |
Не запрашивать подтверждение при выборе существующего файла. По умолчанию запрос подтверждения осуществляется. |
FileDialog.ReadOnly |
Указывает, что в диалоге запрещено создание директорий. |
FileDialog.HideNameFilterDetails |
Указывает, скрыты ли детали фильтра имени файла или нет. |
rejectLabel : строка
Это свойство содержит текст метки, отображаемой на кнопке, отклоняющей диалог.
При установке в пустую строку используется метка по умолчанию для текущей платформы. Метка по умолчанию обычно Отмена.
Значение по умолчанию — пустая строка.
См. также acceptLabel.
selectedNameFilter.extensions : список<строка>
Эти свойства содержат текущий выбранный фильтр имен.
| Имя | Описание |
|---|---|
| index : целое | Это свойство определяет, какой фильтр имен выбран. Указанный фильтр выбирается при открытии диалога. Значение обновляется, когда пользователь выбирает другой фильтр. |
| [только для чтения] name : строка | Это свойство содержит имя выбранного фильтра. В примере ниже имя первого фильтра — "Text files", а второго — "HTML files". |
| [только для чтения] extensions : список<строка> | Это свойство содержит список расширений выбранного фильтра. В примере ниже список расширений первого фильтра — ["txt"], а второго — ["html", "htm"]. |
FileDialog {
id: fileDialog
selectedNameFilter.index: 1
nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
}
MyDocument {
id: document
fileType: fileDialog.selectedNameFilter.extensions[0]
} См. также nameFilters.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qml-qt-labs-platform-filedialog.html