QFileSystemModel Class
La classe `QFileSystemModel` fournit un modèle de données pour le système de fichiers local. En savoir plus...
| En-tête : | #include <QFileSystemModel> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Hérite de : | 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 d'en créer de nouveaux. Dans le cas le plus simple, elle peut être utilisée avec un widget d'affichage adapté dans le cadre d'un navigateur ou d'un filtre.
On peut accéder à QFileSystemModel via l’interface standard fournie par QAbstractItemModel, mais elle propose également des fonctions pratiques spécifiques à un modèle de répertoires. Les fonctions fileInfo(), isDir(), fileName() et filePath() fournissent des informations sur les fichiers et répertoires sous-jacents associés aux éléments du modèle. Les répertoires peuvent être créés et supprimés à l’aide de mkdir() et rmdir().
Exemple d'utilisation
Un modèle de répertoires affichant le contenu d’un répertoire par défaut est généralement construit à partir d’un objet parent :
QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir::currentPath());Une arborescence 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 l’arborescence :
tree->setRootIndex(model->index(QDir::currentPath()));L'index racine de la vue permet de contrôler la partie du modèle hiérarchique qui s’affiche. QFileSystemModel fournit une fonction pratique qui renvoie un index de modèle adapté à un chemin d’accès vers un répertoire au sein du modèle.
Mise en cache et performances
QFileSystemModel utilise un thread distinct pour se remplir, ce qui évite de bloquer le thread principal pendant l’interrogation du système de fichiers. Les appels à ` rowCount()` renverront ` 0 ` jusqu’à ce que le modèle ait rempli un répertoire. Le thread dans lequel réside QFileSystemModel doit exécuter une boucle d’événements pour traiter les données entrantes.
QFileSystemModel ne commence à se remplir qu’à partir du moment où setRootPath() est appelé. Cela évite toute interrogation inutile du système de fichiers racine, telle que l’énumération des lecteurs sous Windows, jusqu’à ce moment-là.
QFileSystemModel conserve un cache contenant des informations sur les fichiers. Ce cache est automatiquement mis à jour à l'aide de la méthode ` QFileSystemWatcher`.
Voir également Classes de modèles.
Documentation sur les types de membres
enum QFileSystemModel::Option
flags QFileSystemModel::Options
| Constante | Valeur | Description |
|---|---|---|
QFileSystemModel::DontWatchForChanges | 0x00000001 | Ne pas ajouter de surveillants de fichiers aux chemins. Cela réduit la surcharge lorsque le modèle est utilisé pour des tâches simples telles que la complétion de lignes. |
QFileSystemModel::DontResolveSymlinks | 0x00000002 | Ne pas résoudre les liens symboliques dans le modèle de 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’icônes personnalisées a un impact important sur les performances sur le réseau ou les lecteurs amovibles. Cela définit l’option QFileIconProvider::DontUseCustomDirectoryIcons dans le fournisseur d’icônes en conséquence. |
Le type Options est un typedef pour QFlags<Option>. Il stocke une combinaison OR de valeurs Option.
Voir également resolveSymlinks.
enum QFileSystemModel::Roles
| Constante | Valeur | Description |
|---|---|---|
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 |
Documentation sur les propriétés
nameFilterDisables : bool
Cette propriété détermine si les fichiers qui ne répondent pas au filtre de nom sont masqués ou désactivés
Cette propriété est définie par défaut sur « true »
Fonctions d'accès :
| bool | nameFilterDisables() const |
| void | setNameFilterDisables(bool enable) |
options : Options
Cette propriété regroupe les différentes options qui ont une incidence sur le modèle
Par défaut, toutes les options sont désactivées.
Les options doivent être définies 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épertoires autorise l'écriture sur le système de fichiers
Si cette propriété est définie sur « false », le modèle de répertoires autorisera le renommage, la copie et la suppression de fichiers et de répertoires.
Cette propriété est définie par défaut sur « true »
Fonctions d'accès :
| bool | isReadOnly() const |
| void | setReadOnly(bool enable) |
resolveSymlinks : bool
Cette propriété détermine si le modèle de répertoires doit résoudre les liens symboliques
Ceci ne s'applique que sous Windows.
Par défaut, cette propriété est définie sur « true ».
Fonctions d'accès :
| bool | resolveSymlinks() const |
| void | setResolveSymlinks(bool enable) |
Voir également QFileSystemModel::Options.
Documentation des fonctions membres
[explicit] QFileSystemModel::QFileSystemModel(QObject *parent = nullptr)
Construit un modèle de système de fichiers à partir de l'parent on fournie.
[virtual noexcept] QFileSystemModel::~QFileSystemModel()
Supprime 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 de collecte a fini de charger l'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 l'objet ` data ` fourni par une opération de glisser-déposer qui s'est terminée par l'action ion donnée sur la ligne du modèle spécifiée par les paramètres ` row ` et ` column `, ainsi que par l'index ` parent `. Renvoie `true` si l'opération a réussi.
Voir également 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 l'index.
QFileInfo QFileSystemModel::fileInfo(const QModelIndex &index) const
Renvoie l'objet ` QFileInfo ` correspondant à l'élément stocké dans le modèle sous l'index` indiquée.
QString QFileSystemModel::fileName(const QModelIndex &index) const
Renvoie le nom du fichier correspondant à l'élément stocké dans le modèle sous l'index.
QString QFileSystemModel::filePath(const QModelIndex &index) const
Renvoie le chemin d'accès de l'élément stocké dans le modèle sous l'index e indiquée.
[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 se trouve 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 également 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 également 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'index de l'élément de modèle correspondant aux valeurs 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 du 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 suivant :
lastModified(index, QTimeZone::LocalTime);Si index n’est pas valide, un objet QDateTime construit par défaut est renvoyé.
[since 6.6] QDateTime QFileSystemModel::lastModified(const QModelIndex &index, const QTimeZone &tz) const
Renvoie la date et l'heure, dans le fuseau horaire tz, de la dernière modification de index.
Les arguments courants pour tz sont QTimeZone::UTC ou QTimeZone::LocalTime. Le fuseau horaire UTC ne nécessite aucune conversion à partir de l'heure renvoyée par l'API native du système de fichiers ; par conséquent, 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 l’argument ` index ` n’est pas valide, un objet ` QDateTime ` construit par défaut est renvoyé.
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 la liste d'index spécifiée indexes. 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é à la place 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 pouvant être utilisés pour décrire une liste d'éléments du modèle.
QModelIndex QFileSystemModel::mkdir(const QModelIndex &parent, const QString &name)
Créez un répertoire portant 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'role e indiquée pour l'élément « Poste de travail ».
Voir aussi Qt::ItemDataRole.
QStringList QFileSystemModel::nameFilters() const
Renvoie une liste des 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, via l'opérateur « OU », des QFile::Permission pour l'index.
bool QFileSystemModel::remove(const QModelIndex &index)
Supprime l'élément « index » du modèle du système de fichiers et supprime le fichier correspondant du système de fichiers; renvoie « true » en cas de réussite. Si l'élément ne peut pas être supprimé, la fonction renvoie « false ».
Avertissement : cette fonction supprime des fichiers du système de fichiers ; elle ne les déplace pas vers un emplacement où ils pourraient être récupérés.
Voir aussi rmdir().
bool QFileSystemModel::rmdir(const QModelIndex &index)
Supprime le répertoire correspondant à l'élément de modèle « index » dans le modèle du système de fichiers et supprime le répertoire correspondant du système de fichiers; renvoie « true » en cas de réussite. Si le répertoire ne peut pas être supprimé, la fonction renvoie « false ».
Avertissement : cette fonction supprime des répertoires du système de fichiers ; elle ne les déplace pas vers un emplacement où ils pourraient ê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 également la fonction ` rootPath()`.
QString QFileSystemModel::rootPath() const
Le chemin racine actuellement défini
Voir également setRootPath() et rootDirectory().
[signal] void QFileSystemModel::rootPathChanged(const QString &newPath)
Ce signal est émis chaque fois que le chemin d'accès racine a été modifié pour devenir 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 aussi data().
void QFileSystemModel::setFilter(QDir::Filters filters)
Définit le filtre du modèle de répertoire sur celui spécifié par filters.
Notez que le filtre que vous définissez doit toujours inclure la valeur de l'énumération QDir::AllDirs, sinon QFileSystemModel ne pourra pas lire la structure du répertoire.
Voir également filter() et QDir::Filters.
void QFileSystemModel::setIconProvider(QAbstractFileIconProvider *provider)
Définit l'provider s 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 l'option spécifiée si la valeur de « on » est « true » ; dans le cas contraire, désactive l'option spécifiée.
Les options doivent être définies avant de modifier les propriétés.
Voir également options et testOption().
QModelIndex QFileSystemModel::setRootPath(const QString &newPath)
Définit le répertoire surveillé par le modèle sur newPath en y installant un « file system watcher ». Toute modification apportée aux fichiers et répertoires contenus dans ce répertoire sera répercutée dans le modèle.
Si le chemin d’accès est modifié, le signal ` rootPathChanged()` sera émis.
Remarque : cette fonction ne modifie pas la structure du modèle ni les données accessibles aux vues. En d’autres termes, la « racine » du modèle n’ est pas modifiée pour n’inclure que les fichiers et répertoires situés dans le répertoire spécifié par ` newPath ` au sein du 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, la fonction renvoie 0.
[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 l’option « option » est activée ; sinon, renvoie « false ».
Voir également 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, par exemple « 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.