Класс 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 public функций, унаследованных от QDialog
- 214 public функций, унаследованных от QWidget
- 34 public функций, унаследованных от QObject
- 14 public функций, унаследованных от 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()) |
- 5 статических публичных членов унаследованы от QWidget
- 10 статических публичных членов унаследованы от 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
- 1 публичная переменная унаследована от QObject
- 6 защищённых функций унаследованы от QDialog
- 35 защищённых функций унаследованы от QWidget
- 9 защищённых функций унаследованы от QObject
- 1 защищённая функция унаследована от QPaintDevice
- 1 защищённый слот унаследован от QWidget
- 2 защищённых переменных унаследованы от QObject
- 1 защищённый тип унаследован от QPaintDevice
Подробное описание
Класс QFileDialog предоставляет диалоговое окно, позволяющее пользователям выбирать файлы или каталоги.
Класс QFileDialog позволяет пользователю перемещаться по файловой системе для выбора одного или нескольких файлов или каталога.
Самый простой способ создать QFileDialog — использовать статические функции.
fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); В приведенном выше примере модальное диалоговое окно QFileDialog создаётся с помощью статической функции. Диалоговое окно первоначально отображает содержимое каталога "/home/jana" и отображает файлы, соответствующие шаблонам, указанным в строке "Image Files (*.png *.jpg *.bmp)". Родительским окном диалога файлов является this, а заголовок окна — "Открыть изображение".
Если вы хотите использовать несколько фильтров, разделяйте каждый из них двумя точками с запятой. Например:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
Вы можете создать собственное диалоговое окно QFileDialog без использования статических функций. Вызвав setFileMode(), вы можете указать, что пользователь должен выбрать в диалоговом окне:
QFileDialog dialog(this); dialog.setFileMode(QFileDialog::AnyFile);
В приведенном выше примере режим диалогового окна файлов задаётся как AnyFile, что означает, что пользователь может выбрать любой файл или даже указать файл, которого не существует. Этот режим полезен для создания диалогового окна "Сохранить как". Используйте ExistingFile, если пользователь должен выбрать существующий файл, или Directory, если должен быть выбран только каталог. См. перечисление QFileDialog::FileMode для полного списка режимов.
Свойство fileMode содержит режим работы диалогового окна; это указывает на типы объектов, которые пользователь должен выбрать. Используйте setNameFilter(), чтобы установить фильтр файлов диалогового окна. Например:
dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)")); В приведенном выше примере фильтр установлен на "Images (*.png *.xpm *.jpg)", что означает, что будут показаны только файлы с расширением png, xpm, или jpg в QFileDialog. Вы можете применить несколько фильтров, используя setNameFilters(). Используйте selectNameFilter(), чтобы выбрать один из заданных фильтров в качестве фильтра по умолчанию диалогового окна файлов.
Диалоговое окно файлов имеет два режима просмотра: List и Detail. List представляет содержимое текущего каталога в виде списка имён файлов и каталогов. Detail также отображает список имён файлов и каталогов, но предоставляет дополнительную информацию рядом с каждым именем, например, размер файла и дату его изменения. Установите режим с помощью 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, Пример стандартных диалогов и Пример приложения.
Документация по типам членов
enum QFileDialog::AcceptMode
| Константа | Значение |
|---|---|
QFileDialog::AcceptOpen |
0 |
QFileDialog::AcceptSave |
1 |
enum QFileDialog::DialogLabel
| Константа | Значение |
|---|---|
QFileDialog::LookIn |
0 |
QFileDialog::FileName |
1 |
QFileDialog::FileType |
2 |
QFileDialog::Accept |
3 |
QFileDialog::Reject |
4 |
enum QFileDialog::FileMode
Этот перечисление используется для указания того, что пользователь может выбрать в диалоге файлов; т.е. что диалог вернёт, если пользователь нажмёт ОК.
| Константа | Значение | Описание |
|---|---|---|
QFileDialog::AnyFile |
0 |
Имя файла, существует он или нет. |
QFileDialog::ExistingFile |
1 |
Имя единственного существующего файла. |
QFileDialog::Directory |
2 |
Имя каталога. Отображаются как файлы, так и каталоги. Однако нативный диалог файлов Windows не поддерживает отображение файлов в окне выбора каталога. |
QFileDialog::ExistingFiles |
3 |
Имена нуля или более существующих файлов. |
Это значение устарело с Qt 4.5:
| Константа | Значение | Описание |
|---|---|---|
QFileDialog::DirectoryOnly |
4 |
Используйте Directory и setOption(ShowDirsOnly, true) вместо этого. |
См. также setFileMode().
enum QFileDialog::Optionflags QFileDialog::Options
| Константа | Значение | Описание |
|---|---|---|
QFileDialog::ShowDirsOnly |
0x00000001 |
Отображать только каталоги в диалоге файлов. По умолчанию отображаются как файлы, так и каталоги. (Действительно только в режиме файлов Directory). |
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.
enum 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
Это свойство содержит различные параметры, влияющие на вид диалога.
По умолчанию все параметры отключены.
Параметры должны быть установлены перед отображением диалога. Их установка во время видимости диалога не гарантирует немедленного эффекта (в зависимости от параметра и платформы).
Это свойство было введено в 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)
Этот сигнал генерируется, когда пользователь выбирает фильтр.
Эта функция была представлена в 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)
Устанавливает текущий 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 каталога directory диалога выбора файла.
Примечание: Ненативный 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.
END_OF_DOCUMENT_MARKERvoid QFileDialog::setLabelText(QFileDialog::DialogLabel label, const QString &text)
Устанавливает text, отображаемый в окне диалога выбора файла, в указанном label.
См. также labelText().
void QFileDialog::setMimeTypeFilters(const QStringList &filters)
Устанавливает 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)
Устанавливает 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 имеют три возможных расширения; если ваше приложение может открывать такие файлы, выбор фильтра image/jpeg mime позволит вам открыть все из них.
Эта функция была представлена в Qt 4.4.
См. также nameFilters().
void QFileDialog::setOption(QFileDialog::Option option, bool on = true)
Устанавливает заданный option в состояние включения, если on имеет значение true; в противном случае очищает заданный option.
Эта функция была представлена в 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
Возвращает список урлов, которые в настоящее время находятся в боковой панели
Эта функция была представлена в 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/archives/qt-5.11/qfiledialog.html