Класс QDirModel
Класс QDirModel предоставляет модель данных для локальной файловой системы. Подробнее...
| Заголовок: | #include <QDirModel> |
| qmake: | QT += widgets |
| Наследует: | QAbstractItemModel |
Этот класс устарел. Он предоставляется для сохранения работоспособности старого исходного кода. Мы настоятельно рекомендуем не использовать его в новом коде.
Типы public
| перечисление | Roles { FileIconRole, FilePathRole, FileNameRole } |
Свойства
- lazyChildCount : bool
- readOnly : bool
- resolveSymlinks : bool
Функции public
| 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 |
Реализованные функции public
| 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 |
Слот public
| void | refresh(const QModelIndex &parent = QModelIndex()) |
Подробное описание
Использование QDirModel больше не рекомендуется. Класс QFileSystemModel является более эффективной альтернативой.
Этот класс предоставляет доступ к локальной файловой системе, предоставляя функции для переименования и удаления файлов и каталогов, а также для создания новых каталогов. В простейшем случае его можно использовать с подходящим виджетом отображения в качестве части браузера или файлового менеджера.
QDirModel хранит кэш с информацией о файлах. Кэш необходимо обновлять с помощью refresh().
К QDirModel можно получить доступ с помощью стандартного интерфейса, предоставляемого классом QAbstractItemModel, но он также предоставляет некоторые удобные функции, специфичные для модели каталогов. Функции fileInfo() и isDir() предоставляют информацию об основных файлах и каталогах, связанных с элементами в модели.
Каталоги можно создавать и удалять с помощью mkdir(), rmdir(), и модель автоматически обновится, чтобы учесть изменения.
Примечание: QDirModel требует экземпляра QApplication.
END_OF_DOCUMENT_MARKERСм. также nameFilters(), setFilter(), filter(), QListView, QTreeView, QFileSystemModel, Пример просмотра каталогов и Классы моделей.
Документация типов членов
enum 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.
void QDirModel::refresh(const QModelIndex &parent = QModelIndex())
QDirModel кэширует информацию о файлах. Эта функция обновляет кэш. Параметр parent — это каталог, из которого обновляется модель; значение по умолчанию обновит модель с корневого каталога файловой системы (вся модель).
QDirModel::~QDirModel()
Уничтожает эту модель каталога.
int QDirModel::columnCount(const QModelIndex &parent = QModelIndex()) const
Переопределяет: QAbstractItemModel::columnCount(const QModelIndex &parent) const.
Возвращает количество столбцов в элементе модели parent.
QVariant QDirModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const
Переопределяет: QAbstractItemModel::data(const QModelIndex &index, int role) const.
Возвращает данные для элемента модели index с заданным role.
См. также setData().
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.
Qt::ItemFlags QDirModel::flags(const QModelIndex &index) const
Переопределяет: QAbstractItemModel::flags(const QModelIndex &index) const.
Возвращает флаги элемента для данного индекса index в модели.
См. также Qt::ItemFlags.
bool QDirModel::hasChildren(const QModelIndex &parent = QModelIndex()) const
Переопределяет: QAbstractItemModel::hasChildren(const QModelIndex &parent) const.
Возвращает true, если у элемента модели parent есть подкаталоги; в противном случае возвращает false.
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().
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.
QMimeData *QDirModel::mimeData(const QModelIndexList &indexes) const
Переопределяет: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.
Возвращает объект, содержащий сериализованное описание указанных indexes. Формат описания элементов, соответствующих индексам, получен из функции mimeTypes().
Если список индексов пуст, возвращается 0, а не сериализованный пустой список.
QStringList QDirModel::mimeTypes() const
Переопределяет: QAbstractItemModel::mimeTypes() const.
Возвращает список типов MIME, которые могут быть использованы для описания списка элементов в модели.
QModelIndex QDirModel::mkdir(const QModelIndex &parent, const QString &name)
Создаёт директорию с именем name в элементе модели parent.
QStringList QDirModel::nameFilters() const
Возвращает список фильтров, применённых к именам в модели.
См. также setNameFilters().
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().
int QDirModel::rowCount(const QModelIndex &parent = QModelIndex()) const
Переопределяет: QAbstractItemModel::rowCount(const QModelIndex &parent) const.
Возвращает количество строк в элементе модели parent.
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.
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.
Qt::DropActions QDirModel::supportedDropActions() const
Переопределяет: QAbstractItemModel::supportedDropActions() const.
Возвращает поддерживаемые этой моделью действия перемещения.
См. также Qt::DropActions.