Spec-Zone.ru › Qt

Класс 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 — это typedef для 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).

Обрабатывает данные, предоставленные операцией перетаскивания, которая завершилась указанным действием над строкой в модели, указанной индексом 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 равно true; в противном случае очищает заданный 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.

[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.2/qfilesystemmodel.html

Spec-Zone.ru

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