Spec-Zone.ru › Qt 6.1

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

Reimplements: 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

Reimplements: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

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

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

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

Reimplements: 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

Reimplements: 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

Reimplements: QAbstractItemModel::roleNames() const.

QDir QFileSystemModel::rootDirectory() const

Текущий установленный каталог

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

QString QFileSystemModel::rootPath() const

Текущий установленный путь к корню

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

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

Reimplements: QAbstractItemModel::rowCount(const QModelIndex &parent) const.

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

Reimplements: 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

Reimplements: 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.1/qfilesystemmodel.html

Spec-Zone.ru

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