Spec-Zone.ru › Qt 5.6

Класс 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
  • 58 свойств унаследованы от QWidget
  • 1 свойство унаследовано от QObject

Открытые функции

QFileDialog(QWidget *parent, Qt::WindowFlags flags)
QFileDialog(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())
~QFileDialog()
AcceptMode acceptMode() const
QString defaultSuffix() const
QDir directory() const
QUrl directoryUrl() const
FileMode fileMode() const
QDir::Filters filter() const
QStringList history() const
QFileIconProvider * iconProvider() const
QAbstractItemDelegate * itemDelegate() const
QString labelText(DialogLabel label) const
QStringList mimeTypeFilters() const
QStringList nameFilters() const
void open(QObject *receiver, const char *member)
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 selectedNameFilter() const
QList<QUrl> selectedUrls() const
void setAcceptMode(AcceptMode mode)
void setDefaultSuffix(const QString &suffix)
void setDirectory(const QString &directory)
void setDirectory(const QDir &directory)
void setDirectoryUrl(const QUrl &directory)
void setFileMode(FileMode mode)
void setFilter(QDir::Filters filters)
void setHistory(const QStringList &paths)
void setIconProvider(QFileIconProvider *provider)
void setItemDelegate(QAbstractItemDelegate *delegate)
void setLabelText(DialogLabel label, const QString &text)
void setMimeTypeFilters(const QStringList &filters)
void setNameFilter(const QString &filter)
void setNameFilters(const QStringList &filters)
void setOption(Option option, bool on = true)
void setOptions(Options options)
void setProxyModel(QAbstractProxyModel *proxyModel)
void setSidebarUrls(const QList<QUrl> &urls)
void setSupportedSchemes(const QStringList &schemes)
void setViewMode(ViewMode mode)
QList<QUrl> sidebarUrls() const
QStringList supportedSchemes() const
bool testOption(Option option) const
ViewMode viewMode() const

Реализованные общедоступные функции

virtual void setVisible(bool visible)
  • 8 общедоступных функций, унаследованных от QDialog
  • 211 общедоступных функций, унаследованных от 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 = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), Options options = ShowDirsOnly)
QUrl getExistingDirectoryUrl(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QUrl &dir = QUrl(), Options options = ShowDirsOnly, const QStringList &supportedSchemes = QStringList())
QString getOpenFileName(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options())
QStringList getOpenFileNames(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options())
QUrl getOpenFileUrl(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options(), const QStringList &supportedSchemes = QStringList())
QList<QUrl> getOpenFileUrls(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options(), const QStringList &supportedSchemes = QStringList())
QString getSaveFileName(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options())
QUrl getSaveFileUrl(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options(), const QStringList &supportedSchemes = QStringList())
  • 5 статических публичных членов унаследованы от QWidget
  • 11 статических публичных членов унаследованы от QObject

Переопределённые защищённые функции

virtual void accept()
virtual void changeEvent(QEvent *e)
virtual void done(int result)
  • 7 защищённых функций унаследованы от QDialog
  • 35 защищённых функций унаследованы от QWidget
  • 9 защищённых функций унаследованы от QObject
  • 1 защищённая функция унаследована от QPaintDevice

Дополнительные унаследованные члены

  • 5 публичных слотов унаследованы от QDialog
  • 19 публичных слотов унаследованы от QWidget
  • 1 публичный слот унаследован от QObject
  • 7 защищённых функций унаследованы от 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" и отображает файлы, соответствующие шаблонам, заданным в строке "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. Вы можете применить несколько фильтров, используя 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

Этот перечисление используется для указания, что пользователь может выбрать в диалоге файла; то есть, что диалог вернёт, если пользователь нажмёт 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().

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 — это typedef для QFlags<Option>. Он хранит логическое ИЛИ сочетание значений Option.

enum QFileDialog::ViewMode

Это перечисление описывает режим отображения диалога файлов; то есть, какая информация о каждом файле будет отображена.

Постоянная Значение Описание
QFileDialog::Detail 0 Отображает значок, имя и детали для каждого элемента в каталоге.
QFileDialog::List 1 Отображает только значок и имя для каждого элемента в каталоге.

См. также setViewMode().

Документация по свойствам

acceptMode : AcceptMode

Это свойство содержит режим принятия диалога

Режим действия определяет, предназначен ли диалог для открытия или сохранения файлов.

По умолчанию это свойство установлено в AcceptOpen.

Функции доступа:

AcceptMode acceptMode() const
void setAcceptMode(AcceptMode mode)

См. также AcceptMode.

defaultSuffix : QString

суффикс, добавляемый к имени файла, если другой суффикс не был указан

Это свойство задаёт строку, которая будет добавлена к имени файла, если у него ещё нет суффикса. Суффикс обычно используется для указания типа файла (например, "txt" обозначает текстовый файл).

Если первый символ является точкой ('.') , она удаляется.

Функции доступа:

QString defaultSuffix() const
void setDefaultSuffix(const QString &suffix)

fileMode : FileMode

Это свойство содержит режим работы с файлами диалога

Режим работы с файлами определяет количество и тип элементов, которые пользователь должен выбрать в диалоге.

По умолчанию это свойство установлено в AnyFile.

Эта функция установит метки для FileName и Accept DialogLabel. После вызова setFileMode() можно задать пользовательский текст.

Функции доступа:

FileMode fileMode() const
void setFileMode(FileMode mode)

См. также FileMode.

options : Options

Это свойство содержит различные параметры, которые влияют на внешний вид диалога

По умолчанию все параметры отключены.

Параметры следует устанавливать до отображения диалога. Установка их во время отображения диалога не гарантирует немедленного влияния на диалог (в зависимости от параметра и платформы).

Это свойство было введено в Qt 4.5.

Функции доступа:

Options options() const
void setOptions(Options options)

См. также setOption() и testOption().

supportedSchemes : QStringList

Это свойство содержит схемы URL, к которым диалог с файлами должен иметь доступ.

Установка этого свойства позволяет ограничить типы URL-адресов, которые пользователь сможет выбрать. Это способ для приложения объявить протоколы, которые оно будет поддерживать для извлечения содержимого файла. Пустой список означает, что никаких ограничений нет (по умолчанию). Поддержка локальных файлов ("схема file") неявно и всегда включена; нет необходимости включать её в ограничения.

Это свойство было введено в Qt 5.6.

Функции доступа:

QStringList supportedSchemes() const
void setSupportedSchemes(const QStringList &schemes)

viewMode : ViewMode

Это свойство содержит способ отображения файлов и каталогов в диалоге

По умолчанию используется режим Detail для отображения информации о файлах и каталогах.

Функции доступа:

ViewMode viewMode() const
void setViewMode(ViewMode mode)

См. также ViewMode.

Документация по функциям-членам

QFileDialog::QFileDialog(QWidget *parent, Qt::WindowFlags flags)

Создаёт диалог выбора файла с заданным parent и флагами виджета flags.

QFileDialog::QFileDialog(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())

Создаёт диалог выбора файла с заданным parent и caption, который изначально отображает содержимое указанного directory. Содержимое каталога фильтруется перед отображением в диалоге с использованием списка фильтров, разделённых точкой с запятой, заданных параметром filter.

QFileDialog::~QFileDialog()

Удаляет диалог выбора файла.

[virtual protected] void QFileDialog::accept()

Переопределяет QDialog::accept().

[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.

[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 = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), Options options = ShowDirsOnly)

Это удобная статическая функция, которая возвращает выбранную пользователем существующую директорию.

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. В Windows CE, если на устройстве нет системного диалогового окна, будет использоваться QFileDialog.

В Unix/X11 стандартное поведение диалогового окна — разрешать и следовать символичным ссылкам. Например, если /usr/tmp является символичной ссылкой на /var/tmp, то после ввода /usr/tmp диалоговое окно сменится на /var/tmp. Если options включает DontResolveSymlinks, диалоговое окно будет рассматривать символичные ссылки как обычные директории.

В Windows диалоговое окно запустит блокирующий модальный цикл обработки событий, который не будет выполнять QTimers, и если parent не равен 0, то оно расположится непосредственно под строкой заголовка родительского виджета.

Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QFileDialog.

См. также getOpenFileName(), getOpenFileNames() и getSaveFileName().

[static] QUrl QFileDialog::getExistingDirectoryUrl(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QUrl &dir = QUrl(), Options options = ShowDirsOnly, 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 = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options 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, то после ввода /usr/tmp диалоговое окно сменится на /var/tmp. Если options включает DontResolveSymlinks, диалоговое окно будет рассматривать символичные ссылки как обычные директории.

Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QFileDialog.

См. также getOpenFileNames(), getSaveFileName() и getExistingDirectory().

[static] QStringList QFileDialog::getOpenFileNames(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options 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, то после ввода /usr/tmp диалоговое окно сменится на /var/tmp. Аргумент options содержит различные параметры выполнения диалогового окна, см. перечисление QFileDialog::Option для получения дополнительной информации о флагах, которые вы можете передать.

Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QFileDialog.

См. также getOpenFileName(), getSaveFileName() и getExistingDirectory().

END_OF_DOCUMENT_MARKER

[static] QUrl QFileDialog::getOpenFileUrl(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options 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 = Q_NULLPTR, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options 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 = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options 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 = Q_NULLPTR, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options 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().

QString QFileDialog::labelText(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 — ExistingFiles соответствует сигналу filesSelected(), а в других случаях — 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::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. Для получения дополнительной информации относительно этого ключа см. документацию Apple по Info.plist. Эта функция была добавлена в 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.

void QFileDialog::setLabelText(DialogLabel label, const QString &text)

Устанавливает текст, отображаемый в диалоге выбора файла, для указанной метки.

См. также 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(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)

Переопределено из QWidget::setVisible().

QList<QUrl> QFileDialog::sidebarUrls() const

Возвращает список URL-адресов, которые сейчас находятся в боковой панели.

Эта функция была добавлена в Qt 4.3.

См. также setSidebarUrls().

bool QFileDialog::testOption(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.6/qfiledialog.html

Spec-Zone.ru

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