Spec-Zone.ru › Qt 5.9

Класс 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)
виртуальный QModelIndex sibling(int row, int column, const QModelIndex &idx) const
виртуальный void sort(int column, Qt::SortOrder order = Qt::AscendingOrder)
виртуальный Qt::DropActions supportedDropActions() const
  • 39 общедоступные функции, унаследованные от QAbstractItemModel
  • 32 общедоступные функции, унаследованные от 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 для index.

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().

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

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

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

Возвращает размер в байтах index. Если файла не существует, возвращается 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/qt-5.9/qfilesystemmodel.html

Spec-Zone.ru

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