Класс QDirModel
Класс QDirModel предоставляет модель данных для локальной файловой системы. Подробнее...
| Заголовок: | #include <QDirModel> |
| qmake: | QT += widgets |
| Наследует: | QAbstractItemModel |
Этот класс устарел. Он предоставляется для поддержки работы старого кода. Мы настоятельно не рекомендуем использовать его в новом коде.
Открытые типы
| Перечисление | Roles { FileIconRole, FilePathRole, FileNameRole } |
Свойства
- lazyChildCount : bool
- readOnly : bool
- resolveSymlinks : bool
Открытые функции
| QDirModel(QObject *parent = nullptr) | |
| QDirModel(const QStringList &nameFilters, QDir::Filters filters, QDir::SortFlags sort, QObject *parent = nullptr) | |
| virtual | ~QDirModel() |
| 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 |
| bool | lazyChildCount() const |
| QModelIndex | mkdir(const QModelIndex &parent, const QString &name) |
| QStringList | nameFilters() const |
| bool | remove(const QModelIndex &index) |
| bool | resolveSymlinks() const |
| bool | rmdir(const QModelIndex &index) |
| void | setFilter(QDir::Filters filters) |
| void | setIconProvider(QFileIconProvider *provider) |
| void | setLazyChildCount(bool enable) |
| void | setNameFilters(const QStringList &filters) |
| void | setReadOnly(bool enable) |
| void | setResolveSymlinks(bool enable) |
| void | setSorting(QDir::SortFlags sort) |
| QDir::SortFlags | sorting() const |
Переопределённые открытые функции
| virtual int | columnCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual QVariant | data(const QModelIndex &index, int role = Qt::DisplayRole) const override |
| virtual bool | dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override |
| virtual Qt::ItemFlags | flags(const QModelIndex &index) const override |
| virtual bool | hasChildren(const QModelIndex &parent = QModelIndex()) const override |
| virtual QVariant | headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override |
| virtual QModelIndex | index(int row, int column, const QModelIndex &parent = QModelIndex()) const override |
| virtual QMimeData * | mimeData(const QModelIndexList &indexes) const override |
| virtual QStringList | mimeTypes() const override |
| virtual QModelIndex | parent(const QModelIndex &child) const override |
| virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual bool | setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override |
| virtual void | sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override |
| virtual Qt::DropActions | supportedDropActions() const override |
Открытые слоты
| void | refresh(const QModelIndex &parent = QModelIndex()) |
Подробное описание
Использование QDirModel больше не рекомендуется. Класс QFileSystemModel — более производительная альтернатива.
Этот класс предоставляет доступ к локальной файловой системе, предоставляя функции для переименования и удаления файлов и каталогов, а также для создания новых каталогов. В простейшем случае он может использоваться с подходящим виджетом отображения как часть браузера или файлового менеджера.
QDirModel сохраняет кэш с информацией о файлах. Кэш необходимо обновлять с помощью refresh().
К QDirModel можно получить доступ, используя стандартный интерфейс, предоставленный классом QAbstractItemModel, но он также предоставляет некоторые удобные функции, специфичные для модели каталога. Функции fileInfo() и isDir() предоставляют информацию об основных файлах и каталогах, связанных с элементами в модели.
Каталоги можно создавать и удалять, используя mkdir(), rmdir(), и модель будет автоматически обновлена для учёта изменений.
Примечание: QDirModel требует экземпляра QApplication.
См. также nameFilters(), setFilter(), filter(), QListView, QTreeView, QFileSystemModel, Пример представления каталога и Классы моделей.
Документация по типам членов
перечисление QDirModel::Roles
| Константа | Значение |
|---|---|
QDirModel::FileIconRole |
Qt::DecorationRole |
QDirModel::FilePathRole |
Qt::UserRole + 1 |
QDirModel::FileNameRole |
258 |
Документация по свойствам
lazyChildCount : bool
Это свойство определяет, оптимизирует ли модель каталога функцию hasChildren, чтобы проверять только является ли элемент каталогом.
Если это свойство установлено в false, модель каталога убедится, что каталог фактически содержит какие-либо файлы, прежде чем сообщать, что у него есть дочерние элементы. В противном случае модель каталога сообщит, что у элемента есть дочерние элементы, если элемент является каталогом.
Это свойство установлено в false по умолчанию
Функции доступа:
| bool | lazyChildCount() const |
| void | setLazyChildCount(bool enable) |
readOnly : bool
Это свойство определяет, разрешает ли модель каталога запись в файловую систему
Если это свойство установлено в false, модель каталога позволит переименовывать, копировать и удалять файлы и каталоги.
Это свойство установлено в true по умолчанию
Функции доступа:
| bool | isReadOnly() const |
| void | setReadOnly(bool enable) |
resolveSymlinks : bool
Это свойство определяет, должна ли модель каталога разрешать символические ссылки
Это актуально только на операционных системах, которые поддерживают символические ссылки.
Функции доступа:
| bool | resolveSymlinks() const |
| void | setResolveSymlinks(bool enable) |
Документация по функциям членов
QDirModel::QDirModel(QObject *parent = nullptr)
Создает модель каталога с заданным parent.
QDirModel::QDirModel(const QStringList &nameFilters, QDir::Filters filters, QDir::SortFlags sort, QObject *parent = nullptr)
Создает новую модель каталога с заданным parent. В модель включаются только те файлы, которые соответствуют nameFilters и filters. Порядок сортировки задаётся параметром sort.
[slot] void QDirModel::refresh(const QModelIndex &parent = QModelIndex())
QDirModel кэширует информацию о файлах. Эта функция обновляет кэш. Параметр parent — это каталог, с которого обновляется модель; значение по умолчанию обновит модель с корневого каталога файловой системы (вся модель).
[virtual] QDirModel::~QDirModel()
Удаляет эту модель каталога.
[override virtual] int QDirModel::columnCount(const QModelIndex &parent = QModelIndex()) const
Переопределяет: QAbstractItemModel::columnCount(const QModelIndex &parent) const.
Возвращает количество столбцов в элементе модели parent.
[override virtual] QVariant QDirModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const
Переопределяет: QAbstractItemModel::data(const QModelIndex &index, int role) const.
Возвращает данные для элемента модели index с заданным role.
См. также setData().
[override virtual] bool QDirModel::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 если перетаскивание прошло успешно, и false в противном случае.
См. также supportedDropActions().
QIcon QDirModel::fileIcon(const QModelIndex &index) const
Возвращает значки для элемента, хранящегося в модели по заданному index.
QFileInfo QDirModel::fileInfo(const QModelIndex &index) const
Возвращает информацию о файле для указанного индекса модели index.
Примечание: Если индекс модели представляет собой символическую ссылку в базовой файловой системе, возвращаемая информация о файле будет содержать информацию о самой символической ссылке, независимо от того, включено ли resolveSymlinks или нет.
См. также QFileInfo::symLinkTarget().
QString QDirModel::fileName(const QModelIndex &index) const
Возвращает имя элемента, хранящегося в модели по заданному index.
QString QDirModel::filePath(const QModelIndex &index) const
Возвращает путь к элементу, хранящемуся в модели по заданному index.
QDir::Filters QDirModel::filter() const
Возвращает фильтр для модели каталога.
См. также setFilter() и QDir::Filters.
[override virtual] Qt::ItemFlags QDirModel::flags(const QModelIndex &index) const
Переопределяет: QAbstractItemModel::flags(const QModelIndex &index) const.
Возвращает флаги элемента для данного index в модели.
См. также Qt::ItemFlags.
[override virtual] bool QDirModel::hasChildren(const QModelIndex &parent = QModelIndex()) const
Переопределяет: QAbstractItemModel::hasChildren(const QModelIndex &parent) const.
Возвращает true если у элемента parent модели есть дочерние элементы; в противном случае возвращает false.
[override virtual] QVariant QDirModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
Переопределяет: QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.
Возвращает данные, хранящиеся в заданном role для указанного section заголовка с заданным orientation.
QFileIconProvider *QDirModel::iconProvider() const
Возвращает поставщик значков файлов для данной модели каталога.
См. также setIconProvider().
[override virtual] QModelIndex QDirModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const
Переопределяет: QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.
Возвращает индекс элемента модели для элемента в parent с заданным row и column.
QModelIndex QDirModel::index(const QString &path, int column = 0) const
Это перегруженный метод.
Возвращает индекс элемента модели для заданного path.
bool QDirModel::isDir(const QModelIndex &index) const
Возвращает true, если элемент модели index представляет собой директорию; в противном случае возвращает false.
[override virtual] QMimeData *QDirModel::mimeData(const QModelIndexList &indexes) const
Переопределяет: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.
Возвращает объект, содержащий сериализованное описание указанных indexes. Формат описания элементов, соответствующих индексам, получен из функции mimeTypes().
Если список индексов пуст, возвращается 0, а не сериализованный пустой список.
[override virtual] QStringList QDirModel::mimeTypes() const
Переопределяет: QAbstractItemModel::mimeTypes() const.
Возвращает список типов MIME, которые могут быть использованы для описания списка элементов в модели.
QModelIndex QDirModel::mkdir(const QModelIndex &parent, const QString &name)
Создаёт директорию с именем name в элементе модели parent.
QStringList QDirModel::nameFilters() const
Возвращает список фильтров, применённых к именам в модели.
См. также setNameFilters().
[override virtual] QModelIndex QDirModel::parent(const QModelIndex &child) const
Переопределяет: QAbstractItemModel::parent(const QModelIndex &index) const.
Возвращает родительский элемент модели для данного элемента child.
bool QDirModel::remove(const QModelIndex &index)
Удаляет элемент модели index из модели директории и удаляет соответствующий файл из файловой системы, возвращая true, если операция выполнена успешно. Если элемент удалить невозможно, возвращается false.
Предупреждение: Эта функция удаляет файлы из файловой системы; она не перемещает их в место, где они могут быть восстановлены.
См. также rmdir().
bool QDirModel::rmdir(const QModelIndex &index)
Удаляет директорию, соответствующую элементу модели index в модели директории и удаляет соответствующую директорию из файловой системы, возвращая true, если операция выполнена успешно. Если директорию удалить невозможно, возвращается false.
Предупреждение: Эта функция удаляет директории из файловой системы; она не перемещает их в место, где они могут быть восстановлены.
См. также remove().
[override virtual] int QDirModel::rowCount(const QModelIndex &parent = QModelIndex()) const
Переопределяет: QAbstractItemModel::rowCount(const QModelIndex &parent) const.
Возвращает количество строк в элементе модели parent.
[override virtual] bool QDirModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)
Переопределяет: QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role).
Устанавливает данные для элемента модели index с заданным role на данные, на которые ссылается value. Возвращает true при успешном выполнении; в противном случае возвращает false.
См. также data() и Qt::ItemDataRole.
void QDirModel::setFilter(QDir::Filters filters)
Устанавливает фильтр модели директорий на тот, который задан filters.
Обратите внимание, что заданный вами фильтр должен всегда включать значение перечисления QDir::AllDirs, иначе QDirModel не сможет прочитать структуру директорий.
См. также filter() и QDir::Filters.
void QDirModel::setIconProvider(QFileIconProvider *provider)
Устанавливает provider значков файлов для модели директорий.
См. также iconProvider().
void QDirModel::setNameFilters(const QStringList &filters)
Устанавливает фильтры имён filters для модели директорий.
См. также nameFilters().
void QDirModel::setSorting(QDir::SortFlags sort)
Устанавливает порядок сортировки модели директорий, заданный sort.
См. также sorting() и QDir::SortFlags.
[override virtual] void QDirModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)
Переопределяет: QAbstractItemModel::sort(int column, Qt::SortOrder order).
Сортирует элементы модели в column, используя заданный order. Порядок — значение, определённое в Qt::SortOrder.
QDir::SortFlags QDirModel::sorting() const
Возвращает метод сортировки, используемый для модели директорий.
См. также setSorting() и QDir::SortFlags.
[override virtual] Qt::DropActions QDirModel::supportedDropActions() const
Переопределяет: QAbstractItemModel::supportedDropActions() const.
Возвращает поддерживаемые этой моделью действия перемещения.
См. также Qt::DropActions.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qdirmodel.html