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