Spec-Zone.ru › Qt 5.12

Класс 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 }

Свойства

  • acceptMode : AcceptMode
  • defaultSuffix : QString
  • fileMode : FileMode
  • options : Options
  • supportedSchemes : QStringList
  • viewMode : ViewMode
  • 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_MARKER

QString 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API