Класс QFileDialog
Класс QFileDialog предоставляет диалоговое окно, позволяющее пользователю выбрать файлы или каталоги. Подробнее...
| Заголовок: | #include <QFileDialog> |
| qmake: | QT += widgets |
| Наследуется от: | QDialog |
Типы
| перечисление | AcceptMode { AcceptOpen, AcceptSave } |
| перечисление | DialogLabel { LookIn, FileName, FileType, Accept, Reject } |
| перечисление | FileMode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly } |
| перечисление | Option { ShowDirsOnly, DontResolveSymlinks, DontConfirmOverwrite, DontUseNativeDialog, ..., DontUseCustomDirectoryIcons } |
| флаги | Options |
| перечисление | ViewMode { Detail, List } |
Свойства
|
|
- 2 свойства унаследованы от QDialog
- 59 свойств унаследованы от QWidget
- 1 свойство унаследовано от QObject
Публичные функции
| QFileDialog(QWidget *parent, Qt::WindowFlags flags) | |
| QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString()) | |
| virtual | ~QFileDialog() |
| QFileDialog::AcceptMode | acceptMode() const |
| QString | defaultSuffix() const |
| QDir | directory() const |
| QUrl | directoryUrl() const |
| QFileDialog::FileMode | fileMode() const |
| QDir::Filters | filter() const |
| QStringList | history() const |
| QFileIconProvider * | iconProvider() const |
| QAbstractItemDelegate * | itemDelegate() const |
| QString | labelText(QFileDialog::DialogLabel label) const |
| QStringList | mimeTypeFilters() const |
| QStringList | nameFilters() const |
| void | open(QObject *receiver, const char *member) |
| QFileDialog::Options | options() const |
| QAbstractProxyModel * | proxyModel() const |
| bool | restoreState(const QByteArray &state) |
| QByteArray | saveState() const |
| void | selectFile(const QString &filename) |
| void | selectMimeTypeFilter(const QString &filter) |
| void | selectNameFilter(const QString &filter) |
| void | selectUrl(const QUrl &url) |
| QStringList | selectedFiles() const |
| QString | selectedMimeTypeFilter() const |
| QString | selectedNameFilter() const |
| QList<QUrl> | selectedUrls() const |
| void | setAcceptMode(QFileDialog::AcceptMode mode) |
| void | setDefaultSuffix(const QString &suffix) |
| void | setDirectory(const QString &directory) |
| void | setDirectory(const QDir &directory) |
| void | setDirectoryUrl(const QUrl &directory) |
| void | setFileMode(QFileDialog::FileMode mode) |
| void | setFilter(QDir::Filters filters) |
| void | setHistory(const QStringList &paths) |
| void | setIconProvider(QFileIconProvider *provider) |
| void | setItemDelegate(QAbstractItemDelegate *delegate) |
| void | setLabelText(QFileDialog::DialogLabel label, const QString &text) |
| void | setMimeTypeFilters(const QStringList &filters) |
| void | setNameFilter(const QString &filter) |
| void | setNameFilters(const QStringList &filters) |
| void | setOption(QFileDialog::Option option, bool on = true) |
| void | setOptions(QFileDialog::Options options) |
| void | setProxyModel(QAbstractProxyModel *proxyModel) |
| void | setSidebarUrls(const QList<QUrl> &urls) |
| void | setSupportedSchemes(const QStringList &schemes) |
| void | setViewMode(QFileDialog::ViewMode mode) |
| QList<QUrl> | sidebarUrls() const |
| QStringList | supportedSchemes() const |
| bool | testOption(QFileDialog::Option option) const |
| QFileDialog::ViewMode | viewMode() const |
Реализованные публичные функции
| virtual void | setVisible(bool visible) override |
- 8 публичных функций, унаследованных от QDialog
- 214 публичных функций, унаследованных от QWidget
- 31 публичных функций, унаследованных от QObject
- 14 публичных функций, унаследованных от QPaintDevice
Сигналы
| void | currentChanged(const QString &path) |
| void | currentUrlChanged(const QUrl &url) |
| void | directoryEntered(const QString &directory) |
| void | directoryUrlEntered(const QUrl &directory) |
| void | fileSelected(const QString &file) |
| void | filesSelected(const QStringList &selected) |
| void | filterSelected(const QString &filter) |
| void | urlSelected(const QUrl &url) |
| void | urlsSelected(const QList<QUrl> &urls) |
- 3 сигнала унаследованы от QDialog
- 3 сигнала унаследованы от QWidget
- 2 сигнала унаследованы от QObject
Статические публичные члены
| QString | getExistingDirectory(QWidget *parent, const QString &caption, const QString &dir, QFileDialog::Options options) |
| QUrl | getExistingDirectoryUrl(QWidget *parent, const QString &caption, const QUrl &dir, QFileDialog::Options options, const QStringList &supportedSchemes = QStringList()) |
| QString | getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ...) |
| QStringList | getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ...) |
| QUrl | getOpenFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ..., const QStringList &supportedSchemes = QStringList()) |
| QList<QUrl> | getOpenFileUrls(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ..., const QStringList &supportedSchemes = QStringList()) |
| QString | getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ...) |
| QUrl | getSaveFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ..., const QStringList &supportedSchemes = QStringList()) |
| const QMetaObject | staticMetaObject |
- 5 статических публичных членов унаследованы от QWidget
- 9 статических публичных членов унаследованы от QObject
Переопределенные защищенные функции
| virtual void | accept() override |
| virtual void | changeEvent(QEvent *e) override |
| virtual void | done(int result) override |
- 6 защищенных функций унаследованы от QDialog
- 35 защищенных функций унаследованы от QWidget
- 9 защищенных функций унаследованы от QObject
- 1 защищенная функция унаследована от QPaintDevice
Дополнительные унаследованные члены
- 5 публичных слотов унаследованы от QDialog
- 19 публичных слотов унаследованы от QWidget
- 1 публичный слот унаследован от QObject
- 6 защищенных функций унаследованы от QDialog
- 35 защищенных функций унаследованы от QWidget
- 9 защищенных функций унаследованы от QObject
- 1 защищенная функция унаследована от QPaintDevice
- 1 защищенный слот унаследован от QWidget
Подробное описание
Класс QFileDialog предоставляет диалог, позволяющий пользователям выбирать файлы или каталоги.
Класс QFileDialog позволяет пользователю перемещаться по файловой системе, чтобы выбрать один или несколько файлов или каталог.
Самый простой способ создания QFileDialog — использование статических функций.
fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); В приведенном выше примере модальный QFileDialog создается с помощью статической функции. Диалог изначально отображает содержимое каталога "/home/jana" и отображает файлы, соответствующие шаблонам, указанным в строке "Изображения (*.png *.jpg *.bmp)". Родительским элементом диалога выбора файла является this, а заголовок окна — "Открыть изображение".
Если вы хотите использовать несколько фильтров, разделяйте их двумя точками с запятой. Например:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
Вы можете создать собственный QFileDialog, не используя статические функции. Вызвав setFileMode(), вы можете указать, что должен выбрать пользователь в диалоге:
QFileDialog dialog(this); dialog.setFileMode(QFileDialog::AnyFile);
В приведенном выше примере режим диалога выбора файла задается как ЛюбойФайл, что означает, что пользователь может выбрать любой файл или даже указать файл, которого не существует. Этот режим полезен для создания диалога "Сохранить как". Используйте СуществующийФайл, если пользователь должен выбрать существующий файл, или Каталог, если должен быть выбран только каталог. См. перечисление QFileDialog::FileMode для полного списка режимов.
Свойство fileMode содержит режим работы диалога; это указывает, какие типы объектов пользователь должен выбрать. Используйте setNameFilter(), чтобы установить фильтр файлов диалога. Например:
dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)")); В приведенном выше примере фильтр установлен на "Images (*.png *.xpm *.jpg)", это означает, что будут отображаться только файлы с расширением png, xpm, или jpg в QFileDialog. Вы можете применить несколько фильтров, используя setNameFilters(). Используйте selectNameFilter(), чтобы выбрать один из предоставленных фильтров в качестве фильтра по умолчанию диалога выбора файла.
Диалог выбора файла имеет два режима просмотра: Список и Подробности. Список представляет содержимое текущего каталога в виде списка имён файлов и каталогов. Подробности также отображает список имён файлов и каталогов, но предоставляет дополнительную информацию рядом с каждым именем, например, размер файла и дату его изменения. Задайте режим с помощью setViewMode():
dialog.setViewMode(QFileDialog::Detail);
Последняя важная функция, которую вам нужно использовать при создании собственного диалога выбора файла, — это selectedFiles().
QStringList fileNames;
if (dialog.exec())
fileNames = dialog.selectedFiles(); В приведенном выше примере создается и отображается модальный диалог выбора файла. Если пользователь нажал кнопку «ОК», выбранный им файл помещается в fileName.
Рабочий каталог диалога может быть задан с помощью setDirectory(). Каждый файл в текущем каталоге может быть выбран с помощью функции selectFile().
Пример Стандартных диалогов демонстрирует, как использовать QFileDialog, а также другие встроенные диалоговые окна Qt.
По умолчанию, если платформа поддерживает собственный диалог, будет использован платформенно-зависимый диалог выбора файла. В этом случае виджеты, которые в противном случае использовались бы для построения диалога, не будут созданы, поэтому связанные методы доступа, такие как layout() и itemDelegate(), вернут null. Вы можете установить опцию DontUseNativeDialog, чтобы гарантировать использование реализации на основе виджетов вместо родного диалога.
См. также QDir, QFileInfo, QFile, QColorDialog, QFontDialog, Пример Стандартных диалогов и Пример приложения.
Документация по типам членов
перечисление QFileDialog::AcceptMode
| Константа | Значение |
|---|---|
QFileDialog::AcceptOpen |
0 |
QFileDialog::AcceptSave |
1 |
перечисление QFileDialog::DialogLabel
| Константа | Значение |
|---|---|
QFileDialog::LookIn |
0 |
QFileDialog::FileName |
1 |
QFileDialog::FileType |
2 |
QFileDialog::Accept |
3 |
QFileDialog::Reject |
4 |
перечисление QFileDialog::FileMode
Это перечисление используется для указания того, что пользователь может выбрать в диалоге выбора файла; то есть, что диалог вернёт, если пользователь нажмёт OK.
| Константа | Значение | Описание |
|---|---|---|
QFileDialog::AnyFile |
0 |
Имя файла, существует он или нет. |
QFileDialog::ExistingFile |
1 |
Имя одного существующего файла. |
QFileDialog::Directory |
2 |
Имя каталога. Отображаются как файлы, так и каталоги. Однако родной диалог выбора файлов Windows не поддерживает отображение файлов в диалоге выбора каталога. |
QFileDialog::ExistingFiles |
3 |
Ноль или более имён существующих файлов. |
Это значение устарело начиная с Qt 4.5:
| Константа | Значение | Описание |
|---|---|---|
QFileDialog::DirectoryOnly |
4 |
Используйте Directory и setOption(ShowDirsOnly, true) вместо этого. |
См. также setFileMode().
перечисление QFileDialog::Optionфлаги QFileDialog::Options
| Константа | Значение | Описание |
|---|---|---|
QFileDialog::ShowDirsOnly |
0x00000001 |
Отображать только каталоги в диалоге выбора файлов. По умолчанию отображаются как файлы, так и каталоги. (Действительно только в режиме выбора каталога). |
QFileDialog::DontResolveSymlinks |
0x00000002 |
Не разрешать ссылки на символы в диалоге выбора файла. По умолчанию ссылки на символы разрешаются. |
QFileDialog::DontConfirmOverwrite |
0x00000004 |
Не запрашивать подтверждения при выборе существующего файла. По умолчанию запрос подтверждения выполняется. |
QFileDialog::DontUseNativeDialog |
0x00000010 |
Не использовать родной диалог выбора файла. По умолчанию используется родной диалог выбора файла, за исключением случаев использования подкласса QFileDialog с макросом Q_OBJECT или если платформа не имеет родного диалога требуемого типа. |
Примечание: Эта опция должна быть установлена перед изменением свойств диалога или отображением диалога.
| Константа | Значение | Описание |
|---|---|---|
QFileDialog::ReadOnly |
0x00000020 |
Указывает, что модель только для чтения. |
QFileDialog::HideNameFilterDetails |
0x00000040 |
Указывает, скрыты ли детали фильтра имен файлов или нет. |
QFileDialog::DontUseSheet |
0x00000008 |
В предыдущих версиях Qt статические функции создавали лист по умолчанию, если статической функции был передан родитель. Это больше не поддерживается и в Qt 4.5 ничего не делает. Статические функции всегда будут модальными диалогами приложения. Если вы хотите использовать листы, используйте QFileDialog::open() вместо этого. |
QFileDialog::DontUseCustomDirectoryIcons |
0x00000080 |
Всегда использовать значок каталога по умолчанию. Некоторые платформы позволяют пользователю установить другой значок. Поиск пользовательских значков приводит к значительной потере производительности при работе с сетевыми или съемными дисками. Установка этого значения включит опцию QFileIconProvider::DontUseCustomDirectoryIcons в поставщике значков. Это значение перечисления было добавлено в Qt 5.2. |
Тип Options является псевдонимом для QFlags<Option>. Он хранит логическое ИЛИ сочетание значений Option.
перечисление QFileDialog::ViewMode
Это перечисление описывает режим отображения диалога выбора файла; то есть, какая информация о каждом файле будет отображена.
| Константа | Значение | Описание |
|---|---|---|
QFileDialog::Detail |
0 |
Отображает значок, имя и детали для каждого элемента в каталоге. |
QFileDialog::List |
1 |
Отображает только значок и имя для каждого элемента в каталоге. |
См. также setViewMode().
Документация по свойству
acceptMode : AcceptMode
Это свойство содержит режим принятия диалога
Режим действия определяет, является ли диалог для открытия или сохранения файлов.
По умолчанию это свойство установлено в AcceptOpen.
Функции доступа:
| QFileDialog::AcceptMode | acceptMode() const |
| void | setAcceptMode(QFileDialog::AcceptMode mode) |
См. также AcceptMode.
defaultSuffix : QString
Суффикс, добавляемый к имени файла, если другой суффикс не указан
Это свойство задаёт строку, которая будет добавлена к имени файла, если у него нет суффикса. Суффикс обычно используется для указания типа файла (например, "txt" указывает текстовый файл).
Если первый символ является точкой ('.') , она удаляется.
Функции доступа:
| QString | defaultSuffix() const |
| void | setDefaultSuffix(const QString &suffix) |
fileMode : FileMode
Это свойство содержит режим работы с файлами диалога
Режим работы с файлами определяет количество и тип элементов, которые пользователь должен выбрать в диалоге.
По умолчанию это свойство установлено в AnyFile.
Эта функция установит метки для FileName и Accept DialogLabel. Можно установить пользовательский текст после вызова setFileMode().
Функции доступа:
| QFileDialog::FileMode | fileMode() const |
| void | setFileMode(QFileDialog::FileMode mode) |
См. также FileMode.
options : Options
Это свойство содержит различные параметры, влияющие на вид диалога
По умолчанию все параметры отключены.
Параметры (особенно параметр DontUseNativeDialogs) должны быть установлены перед изменением свойств диалога или показом диалога.
Установка параметров во время отображения диалога не гарантирует немедленного влияния на диалог (в зависимости от параметра и платформы).
Установка параметров после изменения других свойств может привести к тому, что эти значения не будут иметь эффекта.
Это свойство было введено в Qt 4.5.
Функции доступа:
| QFileDialog::Options | options() const |
| void | setOptions(QFileDialog::Options options) |
См. также setOption() и testOption().
supportedSchemes : QStringList
Это свойство содержит схемы URL, к которым диалог файла должен иметь доступ.
Установка этого свойства позволяет ограничить тип URL, которые пользователь сможет выбрать. Это способ для приложения объявить протоколы, которые оно будет поддерживать для получения содержимого файла. Пустой список означает, что никаких ограничений не применяется (по умолчанию). Поддержка локальных файлов ("схема file") подразумевается и всегда включена; нет необходимости включать её в ограничение.
Это свойство было введено в Qt 5.6.
Функции доступа:
| QStringList | supportedSchemes() const |
| void | setSupportedSchemes(const QStringList &schemes) |
viewMode : ViewMode
Это свойство содержит способ отображения файлов и каталогов в диалоге
По умолчанию используется режим Detail для отображения информации о файлах и каталогах.
Функции доступа:
| QFileDialog::ViewMode | viewMode() const |
| void | setViewMode(QFileDialog::ViewMode mode) |
См. также ViewMode.
Документация по функциям-членам
QFileDialog::QFileDialog(QWidget *parent, Qt::WindowFlags flags)
Создаёт диалог выбора файла с заданным parent и флагами виджета flags.
QFileDialog::QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())
Создаёт диалог выбора файла с заданным parent и заголовком caption, который изначально отображает содержимое указанного каталога directory. Содержимое каталога фильтруется перед отображением в диалоге, используя список фильтров, разделенных точкой с запятой, указанный в filter.
[virtual] QFileDialog::~QFileDialog()
Удаляет диалог выбора файла.
[override virtual protected] void QFileDialog::accept()
Переопределяет QDialog::accept().
[override virtual protected] void QFileDialog::changeEvent(QEvent *e)
Переопределяет QWidget::changeEvent().
[signal] void QFileDialog::currentChanged(const QString &path)
Когда текущий файл изменяется для локальных операций, этот сигнал излучается с новым именем файла в качестве параметра path.
См. также filesSelected().
[signal] void QFileDialog::currentUrlChanged(const QUrl &url)
Когда текущий файл изменяется, этот сигнал излучается с новым URL файла в качестве параметра url.
Эта функция была введена в Qt 5.2.
См. также urlsSelected().
QDir QFileDialog::directory() const
Возвращает каталог, который в данный момент отображается в диалоге.
См. также setDirectory().
[signal] void QFileDialog::directoryEntered(const QString &directory)
Этот сигнал излучается при локальных операциях, когда пользователь вводит directory.
Эта функция была введена в Qt 4.3.
QUrl QFileDialog::directoryUrl() const
Возвращает URL каталога, который в данный момент отображается в диалоге.
Эта функция была введена в Qt 5.2.
См. также setDirectoryUrl().
[signal] void QFileDialog::directoryUrlEntered(const QUrl &directory)
Этот сигнал излучается, когда пользователь вводит directory.
Эта функция была введена в Qt 5.2.
[override virtual protected] void QFileDialog::done(int result)
Переопределяет QDialog::done().
[signal] void QFileDialog::fileSelected(const QString &file)
Когда выбор изменяется для локальных операций и диалог принимается, этот сигнал излучается с (возможно пустым) выбранным file.
См. также currentChanged() и QDialog::Accepted.
[signal] void QFileDialog::filesSelected(const QStringList &selected)
Когда выбор изменяется для локальных операций и диалог принимается, этот сигнал излучается со списком (возможно пустым) выбранных selected файлов.
См. также currentChanged() и QDialog::Accepted.
QDir::Filters QFileDialog::filter() const
Возвращает фильтр, используемый при отображении файлов.
Эта функция была добавлена в Qt 4.4.
См. также setFilter().
[signal] void QFileDialog::filterSelected(const QString &filter)
Этот сигнал излучается, когда пользователь выбирает filter.
Эта функция была добавлена в Qt 4.3.
[static] QString QFileDialog::getExistingDirectory(QWidget *parent, const QString &caption, const QString &dir, QFileDialog::Options options)
Это удобная статическая функция, которая вернёт существующий каталог, выбранный пользователем.
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
"/home",
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks); Эта функция создаёт модальное диалоговое окно для выбора файла с заданным виджетом parent. Если parent не равен 0, диалоговое окно будет отображено, центрированное над виджетом родителя.
Рабочий каталог диалогового окна устанавливается в dir, а заголовок — в caption. Любой из этих параметров может быть пустой строкой, в этом случае будет использован текущий каталог и по умолчанию заголовок соответственно.
Аргумент options содержит различные параметры работы диалогового окна, см. перечисление QFileDialog::Option для получения более подробной информации о передаваемых флагах. Для обеспечения использования системного диалогового окна необходимо установить ShowDirsOnly.
В Windows и macOS эта статическая функция будет использовать системное диалоговое окно, а не QFileDialog. Однако системное диалоговое окно Windows не поддерживает отображение файлов в окне выбора каталога. Вам нужно передать DontUseNativeDialog для отображения файлов с помощью QFileDialog.
В Unix/X11 стандартное поведение диалогового окна заключается в разрешении и слежении за символическими ссылками. Например, если /usr/tmp является символической ссылкой на /var/tmp, диалоговое окно изменит текущий каталог на /var/tmp после ввода /usr/tmp. Если options включает DontResolveSymlinks, диалоговое окно будет рассматривать символические ссылки как обычные каталоги.
В Windows диалоговое окно запустит блокирующий модальный цикл обработки событий, который не будет выполнять QTimers, а если parent не равен 0, то оно расположит диалоговое окно под строкой заголовка родительского виджета.
Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QFileDialog.
См. также getOpenFileName(), getOpenFileNames() и getSaveFileName().
[static] QUrl QFileDialog::getExistingDirectoryUrl(QWidget *parent, const QString &caption, const QUrl &dir, QFileDialog::Options options, const QStringList &supportedSchemes = QStringList())
Это удобная статическая функция, которая вернёт существующий каталог, выбранный пользователем. Если пользователь нажимает «Отмена», она возвращает пустую ссылку.
Функция используется аналогично QFileDialog::getExistingDirectory(). В частности, parent, caption, dir и options используются точно так же.
Главное отличие от QFileDialog::getExistingDirectory() заключается в возможности выбора удалённого каталога пользователем. Поэтому возвращаемый тип и тип dir — QUrl.
Аргумент supportedSchemes позволяет ограничить тип URL-адресов, которые сможет выбрать пользователь. Это способ для приложения указать протоколы, которые оно будет поддерживать для получения содержимого файла. Пустой список означает, что никаких ограничений не применяется (по умолчанию). Поддержка локальных файлов ("file" схема) подразумевается и всегда включена; нет необходимости включать её в ограничение.
Когда это возможно, эта статическая функция будет использовать системное диалоговое окно, а не QFileDialog. На платформах, не поддерживающих выбор удалённых файлов, Qt позволит выбрать только локальные файлы.
Эта функция была добавлена в Qt 5.2.
См. также getExistingDirectory(), getOpenFileUrl(), getOpenFileUrls() и getSaveFileUrl().
[static] QString QFileDialog::getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ...)
Это удобная статическая функция, которая возвращает существующий файл, выбранный пользователем. Если пользователь нажимает «Отмена», она возвращает пустую строку.
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
"/home",
tr("Images (*.png *.xpm *.jpg)")); Функция создаёт модальное диалоговое окно для выбора файла с заданным виджетом parent. Если parent не равен 0, диалоговое окно будет отображено, центрированное над виджетом родителя.
Рабочий каталог диалогового окна будет установлен в dir. Если dir включает имя файла, файл будет выбран. Отображаются только файлы, соответствующие заданному filter. Выбранный фильтр устанавливается в selectedFilter. Параметры dir, selectedFilter и filter могут быть пустыми строками. Если вам нужны несколько фильтров, разделяйте их «;;», например:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
Аргумент options содержит различные параметры работы диалогового окна, см. перечисление QFileDialog::Option для получения более подробной информации о передаваемых флагах.
Заголовок диалогового окна устанавливается в caption. Если caption не указан, будет использован заголовок по умолчанию.
В Windows и macOS эта статическая функция будет использовать системное диалоговое окно, а не QFileDialog.
В Windows диалоговое окно запустит блокирующий модальный цикл обработки событий, который не будет выполнять QTimers, а если parent не равен 0, то оно расположит диалоговое окно под строкой заголовка родительского виджета.
В Unix/X11 стандартное поведение диалогового окна заключается в разрешении и слежении за символическими ссылками. Например, если /usr/tmp является символической ссылкой на /var/tmp, диалоговое окно изменит текущий каталог на /var/tmp после ввода /usr/tmp. Если options включает DontResolveSymlinks, диалоговое окно будет рассматривать символические ссылки как обычные каталоги.
Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QFileDialog.
См. также getOpenFileNames(), getSaveFileName() и getExistingDirectory().
[static] QStringList QFileDialog::getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ...)
Эта удобная статическая функция вернёт один или несколько существующих файлов, выбранных пользователем.
QStringList files = QFileDialog::getOpenFileNames(
this,
"Select one or more files to open",
"/home",
"Images (*.png *.xpm *.jpg)"); Функция создаёт модальное диалоговое окно для выбора файла с заданным виджетом parent. Если parent не равен 0, диалоговое окно будет отображено, центрированное над виджетом родителя.
Рабочий каталог диалогового окна будет установлен в dir. Если dir включает имя файла, файл будет выбран. Фильтр устанавливается в filter, так что отображаются только файлы, соответствующие фильтру. Выбранный фильтр устанавливается в selectedFilter. Параметры dir, selectedFilter и filter могут быть пустыми строками. Если вам нужны несколько фильтров, разделяйте их «;;», например:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
Заголовок диалогового окна устанавливается в caption. Если caption не указан, будет использован заголовок по умолчанию.
В Windows и macOS эта статическая функция будет использовать системное диалоговое окно, а не QFileDialog.
В Windows диалоговое окно запустит блокирующий модальный цикл обработки событий, который не будет выполнять QTimers, а если parent не равен 0, то оно расположит диалоговое окно под строкой заголовка родительского виджета.
В Unix/X11 стандартное поведение диалогового окна заключается в разрешении и слежении за символическими ссылками. Например, если /usr/tmp является символической ссылкой на /var/tmp, диалоговое окно изменит текущий каталог на /var/tmp после ввода /usr/tmp. Аргумент options содержит различные параметры работы диалогового окна, см. перечисление QFileDialog::Option для получения более подробной информации о передаваемых флагах.
Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QFileDialog.
См. также getOpenFileName(), getSaveFileName() и getExistingDirectory().
END_OF_DOCUMENT_MARKER
[static] QUrl QFileDialog::getOpenFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ..., const QStringList &supportedSchemes = QStringList())
Это удобная статическая функция, которая возвращает существующий файл, выбранный пользователем. Если пользователь нажимает «Отмена», она возвращает пустой URL.
Функция используется аналогично QFileDialog::getOpenFileName(). В частности, parent, caption, dir, filter, selectedFilter и options используются точно так же.
Основное отличие от QFileDialog::getOpenFileName() заключается в возможности пользователя выбирать удалённый файл. Поэтому тип возвращаемого значения и тип dir — QUrl.
Аргумент supportedSchemes позволяет ограничить тип URL, который сможет выбрать пользователь. Это способ для приложения объявить протоколы, которые оно будет поддерживать для получения содержимого файла. Пустой список означает, что ограничений нет (по умолчанию). Поддержка локальных файлов («file» схема) подразумевается и всегда включена; её не нужно включать в ограничение.
Когда это возможно, эта статическая функция будет использовать родной диалог выбора файла, а не QFileDialog. На платформах, не поддерживающих выбор удалённых файлов, Qt позволит выбрать только локальные файлы.
Функция была добавлена в Qt 5.2.
См. также getOpenFileName(), getOpenFileUrls(), getSaveFileUrl() и getExistingDirectoryUrl().
[static] QList<QUrl> QFileDialog::getOpenFileUrls(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ..., const QStringList &supportedSchemes = QStringList())
Это удобная статическая функция, которая возвращает один или несколько существующих файлов, выбранных пользователем. Если пользователь нажимает «Отмена», она возвращает пустой список.
Функция используется аналогично QFileDialog::getOpenFileNames(). В частности, parent, caption, dir, filter, selectedFilter и options используются точно так же.
Основное отличие от QFileDialog::getOpenFileNames() заключается в возможности выбора пользователем удалённых файлов. Поэтому тип возвращаемого значения и тип dir соответственно — QList<QUrl> и QUrl.
Аргумент supportedSchemes позволяет ограничить тип URL, который сможет выбрать пользователь. Это способ для приложения объявить протоколы, которые оно будет поддерживать для получения содержимого файла. Пустой список означает, что ограничений нет (по умолчанию). Поддержка локальных файлов («file» схема) подразумевается и всегда включена; её не нужно включать в ограничение.
Когда это возможно, эта статическая функция будет использовать родной диалог выбора файла, а не QFileDialog. На платформах, не поддерживающих выбор удалённых файлов, Qt позволит выбрать только локальные файлы.
Функция была добавлена в Qt 5.2.
См. также getOpenFileNames(), getOpenFileUrl(), getSaveFileUrl() и getExistingDirectoryUrl().
[static] QString QFileDialog::getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ...)
Это удобная статическая функция, которая вернёт имя файла, выбранное пользователем. Файл не обязательно должен существовать.
Создаёт модальный диалог выбора файла с заданным виджетом parent. Если parent не равен 0, диалог будет показан, центрированный над виджетом-родителем.
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
"/home/jana/untitled.png",
tr("Images (*.png *.xpm *.jpg)")); Рабочий каталог диалога выбора файла будет установлен в dir. Если dir содержит имя файла, файл будет выбран. Отображаются только файлы, соответствующие filter. Выбранный фильтр устанавливается в selectedFilter. Параметры dir, selectedFilter и filter могут быть пустыми строками. Несколько фильтров разделяются с помощью ';;'. Например:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
Аргумент options содержит различные параметры работы диалога, см. перечисление QFileDialog::Option для получения дополнительной информации о флагах, которые вы можете передать.
Фильтры по умолчанию можно выбрать, задав selectedFilter нужное значение.
Заголовок диалога задаётся параметром caption. Если caption не указан, будет использован заголовок по умолчанию.
В Windows и на macOS эта статическая функция будет использовать родной диалог выбора файла, а не QFileDialog.
В Windows диалог запустит блокирующий модальный цикл обработки событий, который не будет обрабатывать QTimers, а если parent не равен 0, он расположит диалог прямо под строкой заголовка родительского виджета. На macOS с родным диалогом выбора файла аргумент filter игнорируется.
В Unix/X11 стандартное поведение диалога выбора файлов заключается в разрешении и переходе по символам-ссылкам. Например, если /usr/tmp — это символ-ссылка на /var/tmp, то диалог выбора файла изменит путь на /var/tmp после ввода /usr/tmp. Если options включает DontResolveSymlinks, диалог выбора файла будет рассматривать символы-ссылки как обычные каталоги.
Предупреждение: Не удаляйте parent во время выполнения диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QFileDialog.
См. также getOpenFileName(), getOpenFileNames() и getExistingDirectory().
[static] QUrl QFileDialog::getSaveFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ..., const QStringList &supportedSchemes = QStringList())
Это удобная статическая функция, которая возвращает файл, выбранный пользователем. Файл не обязательно должен существовать. Если пользователь нажимает «Отмена», она возвращает пустой URL.
Функция используется аналогично QFileDialog::getSaveFileName(). В частности, parent, caption, dir, filter, selectedFilter и options используются точно так же.
Основное отличие от QFileDialog::getSaveFileName() заключается в возможности выбора пользователем удалённого файла. Поэтому тип возвращаемого значения и тип dir — QUrl.
Аргумент supportedSchemes позволяет ограничить тип URL, который сможет выбрать пользователь. Это способ для приложения объявить протоколы, которые оно будет поддерживать для сохранения содержимого файла. Пустой список означает, что ограничений нет (по умолчанию). Поддержка локальных файлов («file» схема) подразумевается и всегда включена; её не нужно включать в ограничение.
Когда это возможно, эта статическая функция будет использовать родной диалог выбора файла, а не QFileDialog. На платформах, не поддерживающих выбор удалённых файлов, Qt позволит выбрать только локальные файлы.
Функция была добавлена в Qt 5.2.
См. также getSaveFileName(), getOpenFileUrl(), getOpenFileUrls() и getExistingDirectoryUrl().
QStringList QFileDialog::history() const
Возвращает историю навигации диалога выбора файла в виде списка путей.
См. также setHistory().
QFileIconProvider *QFileDialog::iconProvider() const
Возвращает поставщик значков, используемый диалогом выбора файла.
См. также setIconProvider().
QAbstractItemDelegate *QFileDialog::itemDelegate() const
Возвращает делегат элементов, используемый для рендеринга элементов в представлениях диалога выбора файла.
См. также setItemDelegate().
END_OF_DOCUMENT_MARKERQString QFileDialog::labelText(QFileDialog::DialogLabel label) const
Возвращает текст, отображаемый в окне диалога выбора файла в указанной метке label.
См. также setLabelText().
QStringList QFileDialog::mimeTypeFilters() const
Возвращает фильтры типов MIME, используемые в этом диалоге выбора файла.
Эта функция была добавлена в Qt 5.2.
См. также setMimeTypeFilters().
QStringList QFileDialog::nameFilters() const
Возвращает фильтры типов файлов, используемые в этом диалоге выбора файла.
Эта функция была добавлена в Qt 4.4.
См. также setNameFilters().
void QFileDialog::open(QObject *receiver, const char *member)
Эта функция подключает один из своих сигналов к слоту, указанному receiver и member. Конкретный сигнал зависит от fileMode: filesSelected() если fileMode равен ExistingFiles и fileSelected() во всех остальных случаях.
Сигнал будет отключен от слота при закрытии диалога.
Эта функция была добавлена в Qt 4.5.
QAbstractProxyModel *QFileDialog::proxyModel() const
Возвращает используемую модель прокси диалога выбора файла. По умолчанию прокси не установлен.
См. также setProxyModel().
bool QFileDialog::restoreState(const QByteArray &state)
Восстанавливает макет диалога, историю и текущий каталог до указанного состояния state.
Обычно используется в сочетании с QSettings для восстановления размера из предыдущей сессии.
Возвращает false при наличии ошибок.
Эта функция была добавлена в Qt 4.3.
QByteArray QFileDialog::saveState() const
Сохраняет состояние макета диалога, истории и текущего каталога.
Обычно используется в сочетании с QSettings для сохранения размера для будущей сессии. Номер версии хранится как часть данных.
Эта функция была добавлена в Qt 4.3.
void QFileDialog::selectFile(const QString &filename)
Выделяет заданный filename в диалоге выбора файла.
См. также selectedFiles().
void QFileDialog::selectMimeTypeFilter(const QString &filter)
Устанавливает текущий фильтр MIME типа filter.
Эта функция была добавлена в Qt 5.2.
void QFileDialog::selectNameFilter(const QString &filter)
Устанавливает текущий фильтр типов файлов filter. Несколько фильтров могут быть переданы в filter, разделяя их точкой с запятой или пробелами.
Эта функция была добавлена в Qt 4.4.
См. также setNameFilter(), setNameFilters() и selectedNameFilter().
void QFileDialog::selectUrl(const QUrl &url)
Выделяет заданную url в диалоге выбора файла.
Примечание: Неродной QFileDialog поддерживает только локальные файлы.
Эта функция была добавлена в Qt 5.2.
См. также selectedUrls().
QStringList QFileDialog::selectedFiles() const
Возвращает список строк, содержащих абсолютные пути выбранных файлов в диалоге. Если файлы не выбраны или режим не ExistingFiles или ExistingFile, selectedFiles() содержит текущий путь в области просмотра.
См. также selectedNameFilter() и selectFile().
QString QFileDialog::selectedMimeTypeFilter() const
Возвращает тип MIME файла, выбранного пользователем в диалоге выбора файла.
Эта функция была добавлена в Qt 5.9.
QString QFileDialog::selectedNameFilter() const
Возвращает фильтр, выбранный пользователем в диалоге выбора файла.
Эта функция была добавлена в Qt 4.4.
См. также selectedFiles().
QList<QUrl> QFileDialog::selectedUrls() const
Возвращает список URL, содержащих выбранные файлы в диалоге. Если файлы не выбраны или режим не ExistingFiles или ExistingFile, selectedUrls() содержит текущий путь в области просмотра.
Эта функция была добавлена в Qt 5.2.
См. также selectedNameFilter() и selectUrl().
void QFileDialog::setDirectory(const QString &directory)
Устанавливает текущий каталог диалога выбора файла.
Примечание: На iOS, если вы установите directory в QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last(), будет использоваться родной диалог выбора изображений для доступа к фотоальбому пользователя. Путь к файлу можно загрузить с помощью QFile и соответствующих API. Для активации этой функции, в файле проекта необходимо в Info.plist, назначенном QMAKE_INFO_PLIST должно содержать ключ NSPhotoLibraryUsageDescription. См. документацию Info.plist от Apple для получения дополнительной информации о данном ключе. Эта функция была добавлена в Qt 5.5.
См. также directory().
void QFileDialog::setDirectory(const QDir &directory)
Это перегруженная функция.
void QFileDialog::setDirectoryUrl(const QUrl &directory)
Устанавливает текущий URL каталога диалога выбора файла.
Примечание: Неродной QFileDialog поддерживает только локальные файлы.
Примечание: В Windows можно передавать URL, представляющие один из виртуальных папок, таких как "Компьютер" или "Сеть". Это делается путем передачи QUrl с использованием схемы clsid, за которым следует значение CLSID с удаленными фигурными скобками. Например, URL clsid:374DE290-123F-4565-9164-39C4925E467B обозначает место загрузки. Полный список возможных значений см. в документации MSDN по KNOWNFOLDERID. Эта функция была добавлена в Qt 5.5.
Эта функция была добавлена в Qt 5.2.
См. также directoryUrl() и QUuid.
void QFileDialog::setFilter(QDir::Filters filters)
Устанавливает фильтр, используемый моделью, в filters. Фильтр используется для определения типа файлов, которые должны отображаться.
Эта функция была добавлена в Qt 4.4.
См. также filter().
void QFileDialog::setHistory(const QStringList &paths)
Устанавливает историю перехода диалога выбора файла, содержащую заданные paths.
См. также history().
void QFileDialog::setIconProvider(QFileIconProvider *provider)
Устанавливает поставщика иконок, используемого диалогом выбора файла, в указанный provider.
См. также iconProvider().
void QFileDialog::setItemDelegate(QAbstractItemDelegate *delegate)
Устанавливает делегата элементов, используемого для отрисовки элементов в представлении в диалоге выбора файла, в заданный delegate.
Предупреждение: Не следует использовать одну и ту же инстанцию делегата между представлениями. Это может привести к некорректной или неинтуитивной работе редактирования, так как каждое представление, подключенное к заданному делегату, может получить сигнал closeEditor() и попытаться получить доступ к, изменить или закрыть редактор, который уже был закрыт.
Обратите внимание, что используемая модель - QFileSystemModel. Она имеет пользовательские роли данных элементов, которые описаны в перечислении Roles. Вы можете использовать QFileIconProvider, если вам нужны только пользовательские значки.
См. также itemDelegate(), setIconProvider() и QFileSystemModel.
void QFileDialog::setLabelText(QFileDialog::DialogLabel label, const QString &text)
Устанавливает текст, отображаемый в файловом диалоге в указанном метке.
См. также labelText().
void QFileDialog::setMimeTypeFilters(const QStringList &filters)
Устанавливает фильтры, используемые в файловом диалоге, из списка типов MIME.
Удобный метод для setNameFilters(). Использует QMimeType для создания фильтра имени из шаблонов glob и описания, определённых в каждом типе MIME.
Используйте application/octet-stream для фильтра «Все файлы (*)», так как это базовый тип MIME для всех файлов.
Вызов setMimeTypeFilters переопределяет любые ранее установленные фильтры имён и изменяет возвращаемое значение nameFilters().
QStringList mimeTypeFilters;
mimeTypeFilters << "image/jpeg" // will show "JPEG image (*.jpeg *.jpg *.jpe)
<< "image/png" // will show "PNG image (*.png)"
<< "application/octet-stream"; // will show "All files (*)"
QFileDialog dialog(this);
dialog.setMimeTypeFilters(mimeTypeFilters);
dialog.exec(); Эта функция была введена в Qt 5.2.
См. также mimeTypeFilters().
void QFileDialog::setNameFilter(const QString &filter)
Устанавливает фильтр, используемый в файловом диалоге, на заданный filter.
Если filter содержит пару скобок, содержащих один или несколько шаблонов имен файлов, разделённых пробелами, то только текст, заключённый в скобки, используется как фильтр. Это означает, что все эти вызовы эквивалентны:
dialog.setNameFilter("All C++ files (*.cpp *.cc *.C *.cxx *.c++)");
dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++"); Эта функция была введена в Qt 4.4.
См. также setMimeTypeFilters() и setNameFilters().
void QFileDialog::setNameFilters(const QStringList &filters)
Устанавливает фильтры, используемые в файловом диалоге.
Обратите внимание, что фильтр *.* не переносимый, потому что историческое предположение о том, что расширение файла определяет тип файла, не является согласованным на всех операционных системах. Возможно наличие файла без точки в его имени (например, Makefile). В родном файловом диалоге Windows *.* будет соответствовать таким файлам, в то время как в других типах файловых диалогов это может быть не так. Поэтому лучше использовать *, если вы хотите выбрать любой файл.
QStringList filters;
filters << "Image files (*.png *.xpm *.jpg)"
<< "Text files (*.txt)"
<< "Any files (*)";
QFileDialog dialog(this);
dialog.setNameFilters(filters);
dialog.exec(); setMimeTypeFilters() имеет преимущество, предоставляя все возможные фильтры имен для каждого типа файла. Например, изображения JPEG имеют три возможных расширения; если ваше приложение может открывать такие файлы, выбор типа MIME image/jpeg в качестве фильтра позволит вам открыть все из них.
Эта функция была введена в Qt 4.4.
См. также nameFilters().
void QFileDialog::setOption(QFileDialog::Option option, bool on = true)
Устанавливает заданный option в состояние включения, если on имеет значение true; в противном случае очищает заданный option.
Параметры (особенно параметр DontUseNativeDialogs) должны быть установлены до изменения свойств диалога или показа диалога.
Установка параметров, пока диалог виден, не гарантирует немедленного действия на диалоге (в зависимости от параметра и платформы).
Установка параметров после изменения других свойств может привести к тому, что эти значения не будут иметь эффекта.
Эта функция была введена в Qt 4.5.
См. также options и testOption().
void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel)
Устанавливает модель для представлений на заданный proxyModel. Это полезно, если вы хотите изменить базовую модель; например, добавить столбцы, отфильтровать данные или добавить диски.
Любая существующая модель прокси будет удалена, но не удалена. Файловый диалог возьмёт владение над proxyModel.
Эта функция была введена в Qt 4.3.
См. также proxyModel().
void QFileDialog::setSidebarUrls(const QList<QUrl> &urls)
Устанавливает urls, которые находятся в боковой панели.
Например:
QList<QUrl> urls;
urls << QUrl::fromLocalFile("/Users/foo/Code/qt5")
<< QUrl::fromLocalFile(QStandardPaths::standardLocations(QStandardPaths::MusicLocation).first());
QFileDialog dialog;
dialog.setSidebarUrls(urls);
dialog.setFileMode(QFileDialog::AnyFile);
if(dialog.exec()) {
// ...
} Файловый диалог будет выглядеть так:
Эта функция была введена в Qt 4.3.
См. также sidebarUrls().
void QFileDialog::setVisible(bool visible)
Переопределено из QDialog::setVisible().
QList<QUrl> QFileDialog::sidebarUrls() const
Возвращает список urls, которые в настоящее время находятся в боковой панели.
Эта функция была введена в Qt 4.3.
См. также setSidebarUrls().
bool QFileDialog::testOption(QFileDialog::Option option) const
Возвращает true если заданный option включён; в противном случае возвращает false.
Эта функция была введена в Qt 4.5.
См. также options и setOption().
void QFileDialog::urlSelected(const QUrl &url)
При изменении выделения и принятии диалога, этот сигнал испускается с (возможно пустым) выбранным url.
Эта функция была введена в Qt 5.2.
См. также currentUrlChanged() и QDialog::Accepted.
void QFileDialog::urlsSelected(const QList<QUrl> &urls)
При изменении выделения и принятии диалога, этот сигнал испускается со списком выбранных urls.
Эта функция была введена в Qt 5.2.
См. также currentUrlChanged() и QDialog::Accepted.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qfiledialog.html