QFileSystemModel Class
La classe QFileSystemModel fournit un modèle de données pour le système de fichiers local. Plus d'informations...
| En-tête : | #include <QFileSystemModel> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Héritages : | QAbstractItemModel |
Types publics
| enum | Option { DontWatchForChanges, DontResolveSymlinks, DontUseCustomDirectoryIcons } |
| flags | Options |
| enum | Roles { FileIconRole, FilePathRole, FileNameRole, FilePermissions, FileInfoRole } |
Propriétés
- nameFilterDisables : bool
- options : Options
- readOnly : bool
- resolveSymlinks : bool
Fonctions publiques
| QFileSystemModel(QObject *parent = nullptr) | |
| virtual | ~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 |
| QAbstractFileIconProvider * | 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 |
(since 6.6) QDateTime | lastModified(const QModelIndex &index, const QTimeZone &tz) const |
| QModelIndex | mkdir(const QModelIndex &parent, const QString &name) |
| QVariant | myComputer(int role = Qt::DisplayRole) const |
| bool | nameFilterDisables() const |
| QStringList | nameFilters() const |
| QFileSystemModel::Options | options() const |
| QFileDevice::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(QAbstractFileIconProvider *provider) |
| void | setNameFilterDisables(bool enable) |
| void | setNameFilters(const QStringList &filters) |
| void | setOption(QFileSystemModel::Option option, bool on = true) |
| void | setOptions(QFileSystemModel::Options options) |
| void | setReadOnly(bool enable) |
| void | setResolveSymlinks(bool enable) |
| QModelIndex | setRootPath(const QString &newPath) |
| qint64 | size(const QModelIndex &index) const |
| bool | testOption(QFileSystemModel::Option option) const |
| QString | type(const QModelIndex &index) const |
Fonctions publiques réimplémentées
| virtual bool | canFetchMore(const QModelIndex &parent) const override |
| 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 void | fetchMore(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 &index) const override |
| virtual QHash<int, QByteArray> | roleNames() const override |
| virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual bool | setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole) override |
| virtual QModelIndex | sibling(int row, int column, const QModelIndex &idx) const override |
| virtual void | sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override |
| virtual Qt::DropActions | supportedDropActions() const override |
Signaux
| void | directoryLoaded(const QString &path) |
| void | fileRenamed(const QString &path, const QString &oldName, const QString &newName) |
| void | rootPathChanged(const QString &newPath) |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *event) override |
| virtual void | timerEvent(QTimerEvent *event) override |
Description détaillée
Cette classe permet d'accéder au système de fichiers local et fournit des fonctions permettant de renommer et de supprimer des fichiers et des répertoires, ainsi que de créer de nouveaux répertoires. Dans le cas le plus simple, elle peut être utilisée avec un widget d'affichage approprié dans le cadre d'un navigateur ou d'un filtre.
QFileSystemModel est accessible à l'aide de l'interface standard fournie par QAbstractItemModel, mais il fournit également certaines fonctions de commodité spécifiques à un modèle de répertoire. Les fonctions fileInfo(), isDir(), fileName() et filePath() fournissent des informations sur les fichiers et les répertoires sous-jacents liés aux éléments du modèle. Les répertoires peuvent être créés et supprimés à l'aide des fonctions mkdir(), rmdir().
Exemple d'utilisation
Un modèle de répertoire qui affiche le contenu d'un répertoire par défaut est généralement construit avec un objet parent :
QFileSystemModel *model = new QFileSystemModel; model->setRootPath(QDir::currentPath());
Une vue arborescente peut être utilisée pour afficher le contenu du modèle
et le contenu d'un répertoire particulier peut être affiché en définissant l'index racine de la vue arborescente :
tree->setRootIndex(model->index(QDir::currentPath()));
L'index racine de la vue peut être utilisé pour contrôler la partie d'un modèle hiérarchique qui est affichée. QFileSystemModel fournit une fonction de commodité qui renvoie un index de modèle approprié pour un chemin d'accès à un répertoire du modèle.
Mise en cache et performances
QFileSystemModel utilise un thread séparé pour se remplir lui-même, de sorte qu'il n'entraîne pas le blocage du thread principal lors de l'interrogation du système de fichiers. Les appels à rowCount() renverront 0 jusqu'à ce que le modèle remplisse un répertoire. Le fil d'exécution dans lequel se trouve le QFileSystemModel doit exécuter une boucle d'événements pour traiter les données entrantes.
QFileSystemModel ne commencera pas à se remplir lui-même tant que setRootPath() n'aura pas été appelé. Cela permet d'éviter toute interrogation inutile du système de fichiers racine du système, comme l'énumération des lecteurs sous Windows, jusqu'à ce moment-là.
QFileSystemModel conserve un cache contenant des informations sur les fichiers. Le cache est automatiquement mis à jour à l'aide de la fonction QFileSystemWatcher.
Voir aussi Classes de modèles.
Documentation des types de membres
enum QFileSystemModel::Option
flags QFileSystemModel::Options
| Constante | Valeur | Description de l'option |
|---|---|---|
QFileSystemModel::DontWatchForChanges | 0x00000001 | Ne pas ajouter d'observateurs de fichiers aux chemins d'accès. Cela réduit la charge de travail lors de l'utilisation du modèle pour des tâches simples telles que la complétion d'édition de ligne. |
QFileSystemModel::DontResolveSymlinks | 0x00000002 | Ne pas résoudre les liens symboliques dans le modèle du système de fichiers. Par défaut, les liens symboliques sont résolus. |
QFileSystemModel::DontUseCustomDirectoryIcons | 0x00000004 | Utilisez toujours l'icône de répertoire par défaut. Certaines plateformes permettent à l'utilisateur de définir une icône différente. La recherche d'une icône personnalisée a un impact important sur les performances des lecteurs réseau ou amovibles. L'option QFileIconProvider::DontUseCustomDirectoryIcons du fournisseur d'icônes est définie en conséquence. |
Le type Options est un typedef pour QFlags<Option>. Il stocke une combinaison OU de valeurs d'options.
Voir également resolveSymlinks.
enum QFileSystemModel::Roles
| Constante | Valeur | Description de l'objet |
|---|---|---|
QFileSystemModel::FileIconRole | Qt::DecorationRole | |
QFileSystemModel::FilePathRole | Qt::UserRole + 1 | |
QFileSystemModel::FileNameRole | Qt::UserRole + 2 | |
QFileSystemModel::FilePermissions | Qt::UserRole + 3 | |
QFileSystemModel::FileInfoRole | Qt::FileInfoRole | L'objet QFileInfo pour l'index |
Propriété Documentation
nameFilterDisables : bool
Cette propriété indique si les fichiers qui ne passent pas le filtre de nom sont cachés ou désactivés
Cette propriété est true par défaut
Fonctions d'accès :
| bool | nameFilterDisables() const |
| void | setNameFilterDisables(bool enable) |
options : Options
Cette propriété contient les différentes options qui affectent le modèle
Par défaut, toutes les options sont désactivées.
Les options doivent être activées avant de modifier les propriétés.
Fonctions d'accès :
| QFileSystemModel::Options | options() const |
| void | setOptions(QFileSystemModel::Options options) |
Voir également setOption() et testOption().
readOnly : bool
Cette propriété indique si le modèle de répertoire permet d'écrire dans le système de fichiers
Si cette propriété vaut false, le modèle de répertoire permet de renommer, de copier et de supprimer des fichiers et des répertoires.
Cette propriété est true par défaut
Fonctions d'accès :
| bool | isReadOnly() const |
| void | setReadOnly(bool enable) |
resolveSymlinks : bool
Cette propriété indique si le modèle de répertoire doit résoudre les liens symboliques
Cette propriété n'est pertinente que sous Windows.
Par défaut, cette propriété est true.
Fonctions d'accès :
| bool | resolveSymlinks() const |
| void | setResolveSymlinks(bool enable) |
Voir également QFileSystemModel::Options.
Documentation sur les fonctions membres
[explicit] QFileSystemModel::QFileSystemModel(QObject *parent = nullptr)
Construit un modèle de système de fichiers avec l'adresse parent.
[virtual noexcept] QFileSystemModel::~QFileSystemModel()
Détruit ce modèle de système de fichiers.
[override virtual] bool QFileSystemModel::canFetchMore(const QModelIndex &parent) const
Réimplémente : QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.
[override virtual] int QFileSystemModel::columnCount(const QModelIndex &parent = QModelIndex()) const
Réimplémente : QAbstractItemModel::columnCount(const QModelIndex &parent) const.
[override virtual] QVariant QFileSystemModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const
Réimplémente : QAbstractItemModel::data(const QModelIndex &index, int role) const.
Voir également setData().
[signal] void QFileSystemModel::directoryLoaded(const QString &path)
Ce signal est émis lorsque le thread du collecteur a fini de charger le site path.
[override virtual] bool QFileSystemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
Réimplémente : QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).
Gère les data fournis par une opération de glisser-déposer qui s'est terminée par le action donné sur la ligne du modèle spécifié par les row et column et par l'index parent. Retourne true si l'opération a réussi.
Voir aussi supportedDropActions().
[override virtual protected] bool QFileSystemModel::event(QEvent *event)
Réimplémente : QObject::event(QEvent *e).
[override virtual] void QFileSystemModel::fetchMore(const QModelIndex &parent)
Réimplémente : QAbstractItemModel::fetchMore(const QModelIndex &parent).
QIcon QFileSystemModel::fileIcon(const QModelIndex &index) const
Renvoie l'icône de l'élément stocké dans le modèle sous le nom index.
QFileInfo QFileSystemModel::fileInfo(const QModelIndex &index) const
Renvoie l'adresse QFileInfo pour l'élément stocké dans le modèle sous l'adresse index donnée.
QString QFileSystemModel::fileName(const QModelIndex &index) const
Renvoie le nom de fichier de l'élément stocké dans le modèle sous le nom index.
QString QFileSystemModel::filePath(const QModelIndex &index) const
Renvoie le chemin de l'élément stocké dans le modèle sous la référence index.
[signal] void QFileSystemModel::fileRenamed(const QString &path, const QString &oldName, const QString &newName)
Ce signal est émis chaque fois qu'un fichier portant le nom oldName est renommé avec succès en newName. Le fichier est situé dans le répertoire path.
QDir::Filters QFileSystemModel::filter() const
Renvoie le filtre spécifié pour le modèle de répertoire.
Si aucun filtre n'a été défini, le filtre par défaut est QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs.
Voir aussi setFilter() et QDir::Filters.
[override virtual] Qt::ItemFlags QFileSystemModel::flags(const QModelIndex &index) const
Réimplémente : QAbstractItemModel::flags(const QModelIndex &index) const.
[override virtual] bool QFileSystemModel::hasChildren(const QModelIndex &parent = QModelIndex()) const
Réimplémente : QAbstractItemModel::hasChildren(const QModelIndex &parent) const.
[override virtual] QVariant QFileSystemModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
Réimplémente : QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.
QAbstractFileIconProvider *QFileSystemModel::iconProvider() const
Renvoie le fournisseur d'icônes de fichiers pour ce modèle de répertoire.
Voir aussi setIconProvider().
[override virtual] QModelIndex QFileSystemModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const
Réimplémente : QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.
QModelIndex QFileSystemModel::index(const QString &path, int column = 0) const
Renvoie l'indice de l'élément de modèle pour les données path et column.
Il s'agit d'une fonction surchargée.
bool QFileSystemModel::isDir(const QModelIndex &index) const
Renvoie true si l'élément de modèle index représente un répertoire ; sinon, renvoie false.
QDateTime QFileSystemModel::lastModified(const QModelIndex &index) const
Renvoie la date et l'heure (en heure locale) de la dernière modification de index.
Il s'agit d'une fonction surchargée, équivalente à l'appel :
lastModified(index, QTimeZone::LocalTime);
Si index n'est pas valide, une construction par défaut QDateTime est renvoyée.
[since 6.6] QDateTime QFileSystemModel::lastModified(const QModelIndex &index, const QTimeZone &tz) const
Renvoie la date et l'heure, dans le fuseau horaire tz, auxquelles index a été modifié pour la dernière fois.
Les arguments typiques pour tz sont QTimeZone::UTC ou QTimeZone::LocalTime. UTC ne nécessite aucune conversion par rapport à l'heure renvoyée par l'API native du système de fichiers, ce qui fait que l'obtention de l'heure en UTC est potentiellement plus rapide. LocalTime est généralement choisi si l'heure est affichée à l'utilisateur.
Si index n'est pas valide, une construction par défaut QDateTime est renvoyée.
Cette fonction a été introduite dans Qt 6.6.
[override virtual] QMimeData *QFileSystemModel::mimeData(const QModelIndexList &indexes) const
Réimplémente : QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.
Renvoie un objet contenant une description sérialisée de l'adresse indexes spécifiée. Le format utilisé pour décrire les éléments correspondant aux index est obtenu à partir de la fonction mimeTypes().
Si la liste des index est vide, nullptr est renvoyé au lieu d'une liste vide sérialisée.
[override virtual] QStringList QFileSystemModel::mimeTypes() const
Réimplémente : QAbstractItemModel::mimeTypes() const.
Renvoie une liste de types MIME qui peuvent être utilisés pour décrire une liste d'éléments dans le modèle.
QModelIndex QFileSystemModel::mkdir(const QModelIndex &parent, const QString &name)
Créez un répertoire avec le nom name dans l'index du modèle parent.
QVariant QFileSystemModel::myComputer(int role = Qt::DisplayRole) const
Renvoie les données stockées sous l'adresse role pour l'élément "Mon ordinateur".
Voir aussi Qt::ItemDataRole.
QStringList QFileSystemModel::nameFilters() const
Renvoie une liste de filtres appliqués aux noms du modèle.
Voir aussi setNameFilters().
[override virtual] QModelIndex QFileSystemModel::parent(const QModelIndex &index) const
Réimplémente : QAbstractItemModel::parent(const QModelIndex &index) const.
QFileDevice::Permissions QFileSystemModel::permissions(const QModelIndex &index) const
Renvoie la combinaison complète OR-ed together de QFile::Permission pour le index.
bool QFileSystemModel::remove(const QModelIndex &index)
Supprime l'élément de modèle index du modèle de système de fichiers et supprime le fichier correspondant du système de fichiers, en renvoyant true en cas de succès. Si l'élément ne peut pas être supprimé, false est renvoyé.
Attention : Cette fonction supprime les fichiers du système de fichiers ; elle ne les déplace pas vers un emplacement où ils peuvent être récupérés.
Voir également rmdir().
bool QFileSystemModel::rmdir(const QModelIndex &index)
Supprime le répertoire correspondant à l'élément de modèle index dans le modèle de système de fichiers et supprime le répertoire correspondant du système de fichiers, en renvoyant true en cas de succès. Si le répertoire ne peut pas être supprimé, false est renvoyé.
Attention : Cette fonction supprime les répertoires du système de fichiers ; elle ne les déplace pas vers un emplacement où ils peuvent être récupérés.
Voir également remove().
[override virtual] QHash<int, QByteArray> QFileSystemModel::roleNames() const
Réimplémente : QAbstractItemModel::roleNames() const.
QDir QFileSystemModel::rootDirectory() const
Le répertoire actuellement défini
Voir aussi rootPath().
QString QFileSystemModel::rootPath() const
Le chemin d'accès à la racine actuellement défini
Voir aussi setRootPath() et rootDirectory().
[signal] void QFileSystemModel::rootPathChanged(const QString &newPath)
Ce signal est émis lorsque le chemin racine a été remplacé par un chemin newPath.
[override virtual] int QFileSystemModel::rowCount(const QModelIndex &parent = QModelIndex()) const
Réimplémente : QAbstractItemModel::rowCount(const QModelIndex &parent) const.
[override virtual] bool QFileSystemModel::setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole)
Réimplémente : QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role).
Voir également data().
void QFileSystemModel::setFilter(QDir::Filters filters)
Fixe le filtre du modèle de répertoire à celui spécifié par filters.
Notez que le filtre que vous définissez doit toujours inclure la valeur de l'enum QDir::AllDirs, sinon QFileSystemModel ne pourra pas lire la structure du répertoire.
Voir aussi filter() et QDir::Filters.
void QFileSystemModel::setIconProvider(QAbstractFileIconProvider *provider)
Définit l'adresse provider des icônes de fichiers pour le modèle de répertoire.
Voir aussi iconProvider().
void QFileSystemModel::setNameFilters(const QStringList &filters)
Définit le nom filters à appliquer aux fichiers existants.
Voir aussi nameFilters().
void QFileSystemModel::setOption(QFileSystemModel::Option option, bool on = true)
Active le site option si on est vrai ; sinon, efface le site option.
Les options doivent être définies avant de modifier les propriétés.
Voir aussi options et testOption().
QModelIndex QFileSystemModel::setRootPath(const QString &newPath)
Définit le répertoire surveillé par le modèle à newPath en y installant un file system watcher. Toute modification apportée aux fichiers et aux répertoires de ce répertoire sera répercutée dans le modèle.
Si le chemin est modifié, le signal rootPathChanged() sera émis.
Remarque : cette fonction ne modifie pas la structure du modèle ni les données disponibles pour les vues. En d'autres termes, la "racine" du modèle n' est pas modifiée pour n'inclure que des fichiers et des répertoires dans le répertoire spécifié par newPath dans le système de fichiers.
Voir également rootPath(), QTreeView::setRootIndex() et TreeView::rootIndex.
[override virtual] QModelIndex QFileSystemModel::sibling(int row, int column, const QModelIndex &idx) const
Réimplémente : QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.
qint64 QFileSystemModel::size(const QModelIndex &index) const
Renvoie la taille en octets de index. Si le fichier n'existe pas, 0 est renvoyé.
[override virtual] void QFileSystemModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)
Réimplémente : QAbstractItemModel::sort(int column, Qt::SortOrder order).
[override virtual] Qt::DropActions QFileSystemModel::supportedDropActions() const
Réimplémente : QAbstractItemModel::supportedDropActions() const.
bool QFileSystemModel::testOption(QFileSystemModel::Option option) const
Renvoie true si le site option est activé ; sinon, renvoie false.
Voir aussi options et setOption().
[override virtual protected] void QFileSystemModel::timerEvent(QTimerEvent *event)
Réimplémente : QObject::timerEvent(QTimerEvent *event).
QString QFileSystemModel::type(const QModelIndex &index) const
Renvoie le type de fichier index tel que "Répertoire" ou "Fichier JPEG".
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.