Spec-Zone.ru › Qt 6.0

Класс QFileSystemModel

Класс QFileSystemModel предоставляет модель данных для локальной файловой системы. Подробнее...

Заголовок: #include <QFileSystemModel>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Наследует: QAbstractItemModel
  • Список всех членов, включая наследуемые

Типы публичного доступа

перечисление Option { НеОтслеживатьИзменения, НеРазрешатьСимволическиеСсылки, НеИспользоватьПользовательскиеИконкиДиректорий }
флаги Options
перечисление Roles { ИконкаФайла, ПутьКФайлу, ИмяФайла, РазрешенияФайла }

Свойства

  • nameFilterDisables : bool
  • options : Options
  • readOnly : bool
  • resolveSymlinks : bool

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

QFileSystemModel(QObject *parent = nullptr)
virtual ~QFileSystemModel()
QIcon fileIcon(const QModelIndex &index) const
QFileInfo fileInfo(const QModelIndex &index) const
QString fileName(const QModelIndex &index) const
QString filePath(const QModelIndex &index) const
QDir::Filters filter() const
QAbstractFileIconProvider * iconProvider() const
QModelIndex index(const QString &path, int column = 0) const
bool isDir(const QModelIndex &index) const
bool isReadOnly() const
QDateTime lastModified(const QModelIndex &index) const
QModelIndex mkdir(const QModelIndex &parent, const QString &name)
QVariant myComputer(int role = Qt::DisplayRole) const
bool nameFilterDisables() const
QStringList nameFilters() const
QFileSystemModel::Options options() const
QFile::Permissions permissions(const QModelIndex &index) const
bool remove(const QModelIndex &index)
bool resolveSymlinks() const
bool rmdir(const QModelIndex &index)
QDir rootDirectory() const
QString rootPath() const
void setFilter(QDir::Filters filters)
void setIconProvider(QAbstractFileIconProvider *provider)
void setNameFilterDisables(bool enable)
void setNameFilters(const QStringList &filters)
void setOption(QFileSystemModel::Option option, bool on = true)
void setOptions(QFileSystemModel::Options options)
void setReadOnly(bool enable)
void setResolveSymlinks(bool enable)
QModelIndex setRootPath(const QString &newPath)
qint64 size(const QModelIndex &index) const
bool testOption(QFileSystemModel::Option option) const
QString type(const QModelIndex &index) const

Переопределённые открытые функции

виртуальный bool canFetchMore(const QModelIndex &parent) const override
виртуальный int columnCount(const QModelIndex &parent = QModelIndex()) const override
виртуальный QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override
виртуальный bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
виртуальный void fetchMore(const QModelIndex &parent) override
виртуальный Qt::ItemFlags flags(const QModelIndex &index) const override
виртуальный bool hasChildren(const QModelIndex &parent = QModelIndex()) const override
виртуальный QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override
виртуальный QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override
виртуальный QMimeData * mimeData(const QModelIndexList &indexes) const override
виртуальный QStringList mimeTypes() const override
виртуальный QModelIndex parent(const QModelIndex &index) const override
виртуальный QHash<int, QByteArray> roleNames() const override
виртуальный int rowCount(const QModelIndex &parent = QModelIndex()) const override
виртуальный bool setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole) override
виртуальный QModelIndex sibling(int row, int column, const QModelIndex &idx) const override
виртуальный void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override
виртуальный Qt::DropActions supportedDropActions() const override

Сигналы

void directoryLoaded(const QString &path)
void fileRenamed(const QString &path, const QString &oldName, const QString &newName)
void rootPathChanged(const QString &newPath)

Реализованные защищенные функции

виртуальный bool event(QEvent *event) override
виртуальный void timerEvent(QTimerEvent *event) override

Подробное описание

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

QFileSystemModel может быть использован с помощью стандартного интерфейса, предоставленного QAbstractItemModel, но также предоставляет некоторые удобные функции, специфичные для модели каталогов. Функции fileInfo(), isDir(), fileName() и filePath() предоставляют информацию об основных файлах и каталогах, связанных с элементами в модели. Каталоги можно создавать и удалять с помощью mkdir() и rmdir().

Примечание: QFileSystemModel требует экземпляра QApplication.

Пример использования

Модель каталогов, которая отображает содержимое каталога по умолчанию, обычно создается с родительским объектом:

    QFileSystemModel *model = new QFileSystemModel;
    model->setRootPath(QDir::currentPath());

Для отображения содержимого модели можно использовать виджет дерева

    QTreeView *tree = new QTreeView(splitter);
    tree->setModel(model);

и содержимое определенного каталога можно отобразить, установив корневой индекс виджета дерева:

    tree->setRootIndex(model->index(QDir::currentPath()));

Корневой индекс представления используется для управления тем, какая часть иерархической модели отображается. QFileSystemModel предоставляет удобную функцию, которая возвращает подходящий индекс модели для пути к каталогу в модели.

Кэширование и производительность

QFileSystemModel не будет извлекать файлы или каталоги до тех пор, пока не будет вызван setRootPath(). Это предотвратит ненужный запрос к файловой системе до этого момента, такой как перечисление дисков в Windows.

QFileSystemModel использует отдельный поток для заполнения, поэтому он не заблокирует основной поток во время запроса к файловой системе. Вызовы rowCount() будут возвращать 0 до тех пор, пока модель не заполнит каталог.

QFileSystemModel хранит кэш с информацией о файлах. Кэш автоматически обновляется с помощью QFileSystemWatcher.

См. также Классы моделей.

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

[since 5.14] перечисление QFileSystemModel::Optionфлаги QFileSystemModel::Options

Константа Значение Описание
QFileSystemModel::DontWatchForChanges 0x00000001 Не добавлять наблюдателей файлов к путям. Это уменьшает нагрузку при использовании модели для простых задач, таких как завершение редактирования строки.
QFileSystemModel::DontResolveSymlinks 0x00000002 Не разрешать ссылки на файлы в модели файловой системы. По умолчанию ссылки на файлы разрешаются.
QFileSystemModel::DontUseCustomDirectoryIcons 0x00000004 Всегда использовать значок каталога по умолчанию. Некоторые платформы позволяют пользователю установить другой значок. Поиск пользовательских значков вызывает большой спад производительности на сетевых или съемных дисках. Это устанавливает параметр QFileIconProvider::DontUseCustomDirectoryIcons в поставщике значков соответственно.

Это перечисление было введено или изменено в Qt 5.14.

Тип Options — это синоним для QFlags<Option>. Он хранит логическое ИЛИ сочетание значений Option.

См. также resolveSymlinks.

перечисление QFileSystemModel::Roles

Константа Значение
QFileSystemModel::FileIconRole Qt::DecorationRole
QFileSystemModel::FilePathRole Qt::UserRole + 1
QFileSystemModel::FileNameRole Qt::UserRole + 2
QFileSystemModel::FilePermissions Qt::UserRole + 3

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

nameFilterDisables : bool

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

Это свойство по умолчанию true.

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

bool nameFilterDisables() const
void setNameFilterDisables(bool enable)

[since 5.14] options : Options

Это свойство хранит различные параметры, влияющие на модель.

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

Параметры следует задавать перед изменением свойств.

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

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

QFileSystemModel::Options options() const
void setOptions(QFileSystemModel::Options options)

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

readOnly : bool

Это свойство определяет, разрешает ли модель каталога запись в файловую систему.

Если это свойство установлено в false, модель каталога позволит переименовывать, копировать и удалять файлы и каталоги.

Это свойство по умолчанию true.

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

bool isReadOnly() const
void setReadOnly(bool enable)

resolveSymlinks : bool

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

Это актуально только в Windows.

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

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

bool resolveSymlinks() const
void setResolveSymlinks(bool enable)

См. также QFileSystemModel::Options.

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

QFileSystemModel::QFileSystemModel(QObject *parent = nullptr)

Создаёт модель файловой системы с заданным parent.

[signal] void QFileSystemModel::directoryLoaded(const QString &path)

Этот сигнал испускается, когда поток сбора завершил загрузку path.

[signal] void QFileSystemModel::fileRenamed(const QString &path, const QString &oldName, const QString &newName)

Этот сигнал испускается всякий раз, когда файл с oldName успешно переименовывается в newName. Файл расположен в каталоге path.

[signal] void QFileSystemModel::rootPathChanged(const QString &newPath)

Этот сигнал испускается всякий раз, когда корневой путь изменён на newPath.

[virtual] QFileSystemModel::~QFileSystemModel()

Уничтожает эту модель файловой системы.

[override virtual] bool QFileSystemModel::canFetchMore(const QModelIndex &parent) const

Переопределяет: QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.

[override virtual] int QFileSystemModel::columnCount(const QModelIndex &parent = QModelIndex()) const

Переопределяет: QAbstractItemModel::columnCount(const QModelIndex &parent) const.

[override virtual] QVariant QFileSystemModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const

Переопределяет: QAbstractItemModel::data(const QModelIndex &index, int role) const.

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

[override virtual] bool QFileSystemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

Переопределяет: QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

Обрабатывает data, предоставленные операцией перетаскивания, которая завершилась с указанным action над строкой в модели, указанной row и column, и указанным индексом parent. Возвращает true, если операция была успешной.

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

[override virtual protected] bool QFileSystemModel::event(QEvent *event)

Переопределяет: QObject::event(QEvent *e).

[override virtual] void QFileSystemModel::fetchMore(const QModelIndex &parent)

Переопределяет: QAbstractItemModel::fetchMore(const QModelIndex &parent).

QIcon QFileSystemModel::fileIcon(const QModelIndex &index) const

Возвращает значок для элемента, хранящегося в модели по данному index.

QFileInfo QFileSystemModel::fileInfo(const QModelIndex &index) const

Возвращает QFileInfo для элемента, хранящегося в модели по данному index.

QString QFileSystemModel::fileName(const QModelIndex &index) const

Возвращает имя файла для элемента, хранящегося в модели по данному index.

QString QFileSystemModel::filePath(const QModelIndex &index) const

Возвращает путь к элементу, хранящемуся в модели по данному index.

QDir::Filters QFileSystemModel::filter() const

Возвращает фильтр, заданный для модели каталога.

Если фильтр не задан, по умолчанию используется QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs.

См. также setFilter() и QDir::Filters.

[override virtual] Qt::ItemFlags QFileSystemModel::flags(const QModelIndex &index) const

Переопределяет: QAbstractItemModel::flags(const QModelIndex &index) const.

[override virtual] bool QFileSystemModel::hasChildren(const QModelIndex &parent = QModelIndex()) const

Переопределяет: QAbstractItemModel::hasChildren(const QModelIndex &parent) const.

[override virtual] QVariant QFileSystemModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const

Переопределяет: QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.

QAbstractFileIconProvider *QFileSystemModel::iconProvider() const

Возвращает поставщик значков файлов для этой модели каталога.

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

[override virtual] QModelIndex QFileSystemModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

Реализует повторно: QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.

QModelIndex QFileSystemModel::index(const QString &path, int column = 0) const

Это перегруженный метод.

Возвращает индекс элемента модели для заданного path и column.

bool QFileSystemModel::isDir(const QModelIndex &index) const

Возвращает true если элемент модели index представляет собой каталог; в противном случае возвращает false.

QDateTime QFileSystemModel::lastModified(const QModelIndex &index) const

Возвращает дату и время последнего изменения index.

[override virtual] QMimeData *QFileSystemModel::mimeData(const QModelIndexList &indexes) const

Реализует повторно: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

Возвращает объект, содержащий сериализованное описание указанных indexes. Формат описания элементов, соответствующих индексам, получается из функции mimeTypes().

Если список индексов пустой, возвращается nullptr вместо сериализованного пустого списка.

[override virtual] QStringList QFileSystemModel::mimeTypes() const

Реализует повторно: QAbstractItemModel::mimeTypes() const.

Возвращает список типов MIME, которые могут быть использованы для описания списка элементов в модели.

QModelIndex QFileSystemModel::mkdir(const QModelIndex &parent, const QString &name)

Создаёт каталог с именем name в родительском индексе модели parent.

QVariant QFileSystemModel::myComputer(int role = Qt::DisplayRole) const

Возвращает данные, хранящиеся под заданным role для элемента "Мой компьютер".

См. также Qt::ItemDataRole.

QStringList QFileSystemModel::nameFilters() const

Возвращает список фильтров, применённых к именам в модели.

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

[override virtual] QModelIndex QFileSystemModel::parent(const QModelIndex &index) const

Реализует повторно: QAbstractItemModel::parent(const QModelIndex &index) const.

QFile::Permissions QFileSystemModel::permissions(const QModelIndex &index) const

Возвращает полное комбинированное значение QFile::Permission для index.

bool QFileSystemModel::remove(const QModelIndex &index)

Удаляет элемент модели index из модели файловой системы и удаляет соответствующий файл из файловой системы, возвращая true при успехе. Если элемент удалить нельзя, возвращается false.

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

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

bool QFileSystemModel::rmdir(const QModelIndex &index)

Удаляет каталог, соответствующий элементу модели index в модели файловой системы, и удаляет соответствующий каталог из файловой системы, возвращая true при успехе. Если каталог удалить нельзя, возвращается false.

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

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

[override virtual] QHash<int, QByteArray> QFileSystemModel::roleNames() const

Реализует повторно: QAbstractItemModel::roleNames() const.

QDir QFileSystemModel::rootDirectory() const

Текущий заданный каталог

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

QString QFileSystemModel::rootPath() const

Текущий заданный путь к корню

См. также setRootPath() и rootDirectory().

[override virtual] int QFileSystemModel::rowCount(const QModelIndex &parent = QModelIndex()) const

Реализует повторно: QAbstractItemModel::rowCount(const QModelIndex &parent) const.

[override virtual] bool QFileSystemModel::setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole)

Реализует повторно: QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role).

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

void QFileSystemModel::setFilter(QDir::Filters filters)

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

Обратите внимание, что устанавливаемый вами фильтр всегда должен включать значение перечисления QDir::AllDirs, иначе QFileSystemModel не сможет прочитать структуру каталога.

См. также filter() и QDir::Filters.

void QFileSystemModel::setIconProvider(QAbstractFileIconProvider *provider)

Устанавливает provider значков файлов для модели каталога.

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

void QFileSystemModel::setNameFilters(const QStringList &filters)

Устанавливает фильтры имён filters для применения к существующим файлам.

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

[since 5.14] void QFileSystemModel::setOption(QFileSystemModel::Option option, bool on = true)

Устанавливает заданный option в состояние включения, если on истинно; в противном случае очищает заданный option.

Параметры должны быть установлены перед изменением свойств.

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

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

QModelIndex QFileSystemModel::setRootPath(const QString &newPath)

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

Если путь изменён, будет выпущен сигнал rootPathChanged().

Примечание: Эта функция не изменяет структуру модели или данные, доступные представлениям. Другими словами, "корень" модели не изменяется, чтобы включать только файлы и каталоги внутри каталога, указанного в newPath, в файловой системе.

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

[override virtual] QModelIndex QFileSystemModel::sibling(int row, int column, const QModelIndex &idx) const

Реализует повторно: QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.

qint64 QFileSystemModel::size(const QModelIndex &index) const

Возвращает размер index в байтах. Если файл не существует, возвращается 0.

END_OF_DOCUMENT_MARKER

[override virtual] void QFileSystemModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)

Переопределяет: QAbstractItemModel::sort(int column, Qt::SortOrder order).

[override virtual] Qt::DropActions QFileSystemModel::supportedDropActions() const

Переопределяет: QAbstractItemModel::supportedDropActions() const.

[since 5.14] bool QFileSystemModel::testOption(QFileSystemModel::Option option) const

Возвращает true если заданный option включен; в противном случае возвращает false.

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

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

[override virtual protected] void QFileSystemModel::timerEvent(QTimerEvent *event)

Переопределяет: QObject::timerEvent(QTimerEvent *event).

QString QFileSystemModel::type(const QModelIndex &index) const

Возвращает тип файла index, например, "Папка" или "Файл JPEG".

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qfilesystemmodel.html

Spec-Zone.ru

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