Spec-Zone.ru › Qt 5.6

Класс QFileSystemModel

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

Заголовок: #include <QFileSystemModel>
qmake: QT += widgets
С момента: Qt 4.4
Наследует: QAbstractItemModel
  • Список всех членов, включая унаследованные

Типы

Перечисление Roles { FileIconRole, FilePathRole, FileNameRole, FilePermissions }

Свойства

  • nameFilterDisables : bool
  • readOnly : bool
  • resolveSymlinks : bool
  • 1 свойство унаследовано от QObject

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

QFileSystemModel(QObject *parent = Q_NULLPTR)
~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
QFileIconProvider * 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
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(QFileIconProvider *provider)
void setNameFilterDisables(bool enable)
void setNameFilters(const QStringList &filters)
void setReadOnly(bool enable)
void setResolveSymlinks(bool enable)
QModelIndex setRootPath(const QString &newPath)
qint64 size(const QModelIndex &index) const
QString type(const QModelIndex &index) const

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

виртуальный bool canFetchMore(const QModelIndex &parent) const
виртуальный int columnCount(const QModelIndex &parent = QModelIndex()) const
виртуальный QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const
виртуальный bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
виртуальный void fetchMore(const QModelIndex &parent)
виртуальный Qt::ItemFlags flags(const QModelIndex &index) const
виртуальный bool hasChildren(const QModelIndex &parent = QModelIndex()) const
виртуальный QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
виртуальный QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const
виртуальный QMimeData * mimeData(const QModelIndexList &indexes) const
виртуальный QStringList mimeTypes() const
виртуальный QModelIndex parent(const QModelIndex &index) const
виртуальный int rowCount(const QModelIndex &parent = QModelIndex()) const
виртуальный bool setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole)
виртуальный void sort(int column, Qt::SortOrder order = Qt::AscendingOrder)
виртуальный Qt::DropActions supportedDropActions() const
  • 39 публичных функций, унаследованных от QAbstractItemModel
  • 31 публичных функций, унаследованных от QObject

Сигналы

void directoryLoaded(const QString &path)
void fileRenamed(const QString &path, const QString &oldName, const QString &newName)
void rootPathChanged(const QString &newPath)
  • 18 сигналов, унаследованных от QAbstractItemModel
  • 2 сигналов, унаследованных от QObject

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

виртуальный bool event(QEvent *event)
виртуальный void timerEvent(QTimerEvent *event)
  • 19 защищённых функций, унаследованных от QAbstractItemModel
  • 9 защищённых функций, унаследованных от QObject

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

  • 2 публичных слотов, унаследованных от QAbstractItemModel
  • 1 публичный слот, унаследованный от QObject
  • 11 статических публичных членов, унаследованных от QObject
  • 19 защищённых функций, унаследованных от QAbstractItemModel
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённый слот, унаследованный от QAbstractItemModel

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

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

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

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.

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

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

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

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

enum 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)

readOnly : bool

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

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

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

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

bool isReadOnly() const
void setReadOnly(bool enable)

resolveSymlinks : bool

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

Это актуально только для Windows.

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

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

bool resolveSymlinks() const
void setResolveSymlinks(bool enable)

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

QFileSystemModel::QFileSystemModel(QObject *parent = Q_NULLPTR)

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

QFileSystemModel::~QFileSystemModel()

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

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

Переопределено из QAbstractItemModel::canFetchMore().

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

Переопределено из QAbstractItemModel::columnCount().

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

Переопределено из QAbstractItemModel::data().

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

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

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

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

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

Переопределено из QAbstractItemModel::dropMimeData().

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

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

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

Переопределено из QObject::event().

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

Переопределено из QAbstractItemModel::fetchMore().

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.

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

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

QDir::Filters QFileSystemModel::filter() const

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

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

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

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

Переопределено из QAbstractItemModel::flags().

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

Переопределено из QAbstractItemModel::hasChildren().

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

Переопределено из QAbstractItemModel::headerData().

QFileIconProvider *QFileSystemModel::iconProvider() const

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

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

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

Переопределено из QAbstractItemModel::index().

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.

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

Переопределено из QAbstractItemModel::mimeData().

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

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

[virtual] QStringList QFileSystemModel::mimeTypes() const

Переопределено из QAbstractItemModel::mimeTypes().

Возвращает список типов 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().

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

Переопределено из QAbstractItemModel::parent().

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

Возвращает полное значение прав доступа QFile::Permission для индекса, полученное через побитовое ИЛИ.

bool QFileSystemModel::remove(const QModelIndex &index)

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

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

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

bool QFileSystemModel::rmdir(const QModelIndex &index)

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

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

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

QDir QFileSystemModel::rootDirectory() const

Текущая установленная директория

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

QString QFileSystemModel::rootPath() const

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

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

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

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

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

Переопределено из QAbstractItemModel::rowCount().

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

Переопределено из QAbstractItemModel::setData().

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

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

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

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

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

void QFileSystemModel::setIconProvider(QFileIconProvider *provider)

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

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

void QFileSystemModel::setNameFilters(const QStringList &filters)

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

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

QModelIndex QFileSystemModel::setRootPath(const QString &newPath)

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

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

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

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

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

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

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

Переопределено из QAbstractItemModel::sort().

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

Переопределено из QAbstractItemModel::supportedDropActions().

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

Переопределено из QObject::timerEvent().

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/archives/qt-5.6/qfilesystemmodel.html

Spec-Zone.ru

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