Auf dieser Seite

QFileSystemModel Class

Die Klasse „QFileSystemModel“ stellt ein Datenmodell für das lokale Dateisystem bereit. Mehr...

Header: #include <QFileSystemModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Erbt von: QAbstractItemModel

Öffentliche Typen

enum Option { DontWatchForChanges, DontResolveSymlinks, DontUseCustomDirectoryIcons }
flags Options
enum Roles { FileIconRole, FilePathRole, FileNameRole, FilePermissions, FileInfoRole }

Eigenschaften

Öffentliche Funktionen

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

Neu implementierte öffentliche Funktionen

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

Signale

void directoryLoaded(const QString &path)
void fileRenamed(const QString &path, const QString &oldName, const QString &newName)
void rootPathChanged(const QString &newPath)

Neu implementierte geschützte Funktionen

virtual bool event(QEvent *event) override
virtual void timerEvent(QTimerEvent *event) override

Ausführliche Beschreibung

Diese Klasse ermöglicht den Zugriff auf das lokale Dateisystem und stellt Funktionen zum Umbenennen und Löschen von Dateien und Verzeichnissen sowie zum Erstellen neuer Verzeichnisse bereit. Im einfachsten Fall kann sie mit einem geeigneten Anzeige-Widget als Teil eines Browsers oder Filters verwendet werden.

Der Zugriff auf `QFileSystemModel` erfolgt über die von ` QAbstractItemModel` bereitgestellte Standardschnittstelle, es stehen jedoch auch einige speziell auf das Verzeichnismodell zugeschnittene Komfortfunktionen zur Verfügung. Die Funktionen ` fileInfo()`, ` isDir()`, ` fileName()` und ` filePath()` liefern Informationen zu den zugrunde liegenden Dateien und Verzeichnissen, die mit Elementen im Modell in Verbindung stehen. Verzeichnisse können mit ` mkdir()` und ` rmdir()` erstellt und gelöscht werden.

Anwendungsbeispiel

Ein Verzeichnismodell, das den Inhalt eines Standardverzeichnisses anzeigt, wird in der Regel mit einem übergeordneten Objekt erstellt:

QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir::currentPath());

Zur Anzeige des Modellinhalts kann eine Baumansicht verwendet werden

QTreeView *tree = new QTreeView(splitter);
tree->setModel(model);

und der Inhalt eines bestimmten Verzeichnisses lässt sich durch Festlegen des Stammindexes der Baumansicht anzeigen:

tree->setRootIndex(model->index(QDir::currentPath()));

Der Stammindex der Ansicht kann verwendet werden, um zu steuern, wie viel von einem hierarchischen Modell angezeigt wird. QFileSystemModel bietet eine Hilfsfunktion, die einen geeigneten Modellindex für einen Pfad zu einem Verzeichnis innerhalb des Modells zurückgibt.

Zwischenspeicherung und Leistung

QFileSystemModel verwendet einen separaten Thread, um sich selbst zu füllen, sodass der Hauptthread bei der Abfrage des Dateisystems nicht blockiert wird. Aufrufe von ` rowCount()` geben ` 0 ` zurück, bis das Modell ein Verzeichnis gefüllt hat. Der Thread, in dem das QFileSystemModel läuft, muss eine Ereignisschleife ausführen, um die eingehenden Daten zu verarbeiten.

QFileSystemModel beginnt erst mit der Befüllung, wenn setRootPath() aufgerufen wird. Dadurch werden bis zu diesem Zeitpunkt unnötige Abfragen des Root-Dateisystems des Systems, wie beispielsweise das Aufzählen der Laufwerke unter Windows, verhindert.

QFileSystemModel unterhält einen Cache mit Dateiinformationen. Der Cache wird mithilfe von ` QFileSystemWatcher` automatisch auf dem neuesten Stand gehalten.

Siehe auch Modellklassen.

Dokumentation zu Mitgliedstypen

enum QFileSystemModel::Option
flags QFileSystemModel::Options

KonstanteWertBeschreibung
QFileSystemModel::DontWatchForChanges0x00000001Fügen Sie den Pfaden keine Datei-Watcher hinzu. Dies reduziert den Overhead bei der Verwendung des Modells für einfache Aufgaben wie die Vervollständigung von Zeilen.
QFileSystemModel::DontResolveSymlinks0x00000002Symlinks im Dateisystemmodell nicht auflösen. Standardmäßig werden Symlinks aufgelöst.
QFileSystemModel::DontUseCustomDirectoryIcons0x00000004Verwenden Sie immer das Standard-Verzeichnissymbol. Auf einigen Plattformen kann der Benutzer ein anderes Symbol festlegen. Die Suche nach benutzerdefinierten Symbolen führt bei Netzwerk- oder Wechseldatenträgern zu erheblichen Leistungseinbußen. Dadurch wird die Option `QFileIconProvider::DontUseCustomDirectoryIcons` im Symbolanbieter entsprechend gesetzt.

Der Typ „Options“ ist ein `typedef` für ` QFlags<Option>`. Er speichert eine ODER-Kombination von Optionswerten.

Siehe auch „ resolveSymlinks “.

enum QFileSystemModel::Roles

KonstanteWertBeschreibung
QFileSystemModel::FileIconRoleQt::DecorationRole 
QFileSystemModel::FilePathRoleQt::UserRole + 1 
QFileSystemModel::FileNameRoleQt::UserRole + 2 
QFileSystemModel::FilePermissionsQt::UserRole + 3 
QFileSystemModel::FileInfoRoleQt::FileInfoRoleDas Objekt „ QFileInfo “ für den Index

Dokumentation zu den Eigenschaften

nameFilterDisables : bool

Diese Eigenschaft legt fest, ob Dateien, die den Namensfilter nicht bestehen, ausgeblendet oder deaktiviert werden

Diese Eigenschaft ist standardmäßig auf „ true “ gesetzt

Zugriffsfunktionen:

bool nameFilterDisables() const
void setNameFilterDisables(bool enable)

options : Options

Diese Eigenschaft enthält die verschiedenen Optionen, die sich auf das Modell auswirken

Standardmäßig sind alle Optionen deaktiviert.

Die Optionen sollten vor dem Ändern von Eigenschaften festgelegt werden.

Zugriffsfunktionen:

QFileSystemModel::Options options() const
void setOptions(QFileSystemModel::Options options)

Siehe auch setOption() und testOption().

readOnly : bool

Diese Eigenschaft gibt an, ob das Verzeichnismodell das Schreiben in das Dateisystem zulässt

Ist diese Eigenschaft auf „false“ gesetzt, erlaubt das Verzeichnismodell das Umbenennen, Kopieren und Löschen von Dateien und Verzeichnissen.

Diese Eigenschaft ist standardmäßig auf „ true “ gesetzt

Zugriffsfunktionen:

bool isReadOnly() const
void setReadOnly(bool enable)

Diese Eigenschaft legt fest, ob das Verzeichnismodell symbolische Links auflösen soll

Dies ist nur unter Windows relevant.

Standardmäßig ist diese Eigenschaft auf „ true “ gesetzt.

Zugriffsfunktionen:

bool resolveSymlinks() const
void setResolveSymlinks(bool enable)

Siehe auch „ QFileSystemModel::Options “.

Dokumentation zu den Mitgliedsfunktionen

[explicit] QFileSystemModel::QFileSystemModel(QObject *parent = nullptr)

Erstellt ein Dateisystemmodell mit dem angegebenen „ parent “.

[virtual noexcept] QFileSystemModel::~QFileSystemModel()

Löscht dieses Dateisystemmodell.

[override virtual] bool QFileSystemModel::canFetchMore(const QModelIndex &parent) const

Implementiert neu: ` QAbstractItemModel::canFetchMore(const QModelIndex &parent) const`.

[override virtual] int QFileSystemModel::columnCount(const QModelIndex &parent = QModelIndex()) const

Implementiert: ` QAbstractItemModel::columnCount(const QModelIndex &parent) const`.

[override virtual] QVariant QFileSystemModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const

Implementiert neu: ` QAbstractItemModel::data(const QModelIndex &index, int role) const`.

Siehe auch setData().

[signal] void QFileSystemModel::directoryLoaded(const QString &path)

Dieses Signal wird ausgelöst, wenn der Gatherer-Thread das Laden von „ path “ abgeschlossen hat.

[override virtual] bool QFileSystemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

Implementiert: ` QAbstractItemModel::dropMimeData` (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

Verarbeitet das von einem Drag-and-Drop-Vorgang bereitgestellte ` data `, der mit der angegebenen ` action ` über der Zeile im Modell endete, die durch ` row ` und ` column ` sowie durch den Index ` parent ` spezifiziert wurde. Gibt `true` zurück, wenn der Vorgang erfolgreich war.

Siehe auch supportedDropActions().

[override virtual protected] bool QFileSystemModel::event(QEvent *event)

Umsetzt: ` QObject::event(QEvent *e)`.

[override virtual] void QFileSystemModel::fetchMore(const QModelIndex &parent)

Implementiert: ` QAbstractItemModel::fetchMore(const QModelIndex &parent)`.

QIcon QFileSystemModel::fileIcon(const QModelIndex &index) const

Gibt das Symbol für das Element zurück, das im Modell unter der angegebenen index gespeichert ist.

QFileInfo QFileSystemModel::fileInfo(const QModelIndex &index) const

Gibt die „ QFileInfo “ für das Element zurück, das im Modell unter der angegebenen „ index “ gespeichert ist.

QString QFileSystemModel::fileName(const QModelIndex &index) const

Gibt den Dateinamen des Elements zurück, das im Modell unter der angegebenen „ index “ gespeichert ist.

QString QFileSystemModel::filePath(const QModelIndex &index) const

Gibt den Pfad des Elements zurück, das im Modell unter der angegebenen „ index “ gespeichert ist.

[signal] void QFileSystemModel::fileRenamed(const QString &path, const QString &oldName, const QString &newName)

Dieses Signal wird immer dann ausgegeben, wenn eine Datei mit dem Namen „ oldName “ erfolgreich in „ newName “ umbenannt wurde. Die Datei befindet sich im Verzeichnis „ path “.

QDir::Filters QFileSystemModel::filter() const

Gibt den für das Verzeichnismodell festgelegten Filter zurück.

Wenn kein Filter festgelegt wurde, lautet der Standardfilter „ QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs “.

Siehe auch setFilter() und QDir::Filters.

[override virtual] Qt::ItemFlags QFileSystemModel::flags(const QModelIndex &index) const

Implementiert neu: ` QAbstractItemModel::flags(const QModelIndex &index) const`.

[override virtual] bool QFileSystemModel::hasChildren(const QModelIndex &parent = QModelIndex()) const

Implementiert: ` QAbstractItemModel::hasChildren(const QModelIndex &parent) const`.

[override virtual] QVariant QFileSystemModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const

Implementiert neu: ` QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const`.

QAbstractFileIconProvider *QFileSystemModel::iconProvider() const

Gibt den Dateisymbol-Anbieter für dieses Verzeichnismodell zurück.

Siehe auch ` setIconProvider()`.

[override virtual] QModelIndex QFileSystemModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

Implementiert: ` QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const`.

QModelIndex QFileSystemModel::index(const QString &path, int column = 0) const

Gibt den Modellelementindex für die angegebenen Werte „ path “ und „ column “ zurück.

Dies ist eine überladene Funktion.

bool QFileSystemModel::isDir(const QModelIndex &index) const

Gibt „ true “ zurück, wenn das Modellelement „ index “ ein Verzeichnis darstellt; andernfalls wird „ false “ zurückgegeben.

QDateTime QFileSystemModel::lastModified(const QModelIndex &index) const

Gibt das Datum und die Uhrzeit (in Ortszeit) zurück, zu der „ index “ zuletzt geändert wurde.

Dies ist eine überladene Funktion, die dem Aufruf von

lastModified(index, QTimeZone::LocalTime);

Ist index ungültig, wird ein standardmäßig initialisiertes QDateTime zurückgegeben.

[since 6.6] QDateTime QFileSystemModel::lastModified(const QModelIndex &index, const QTimeZone &tz) const

Gibt das Datum und die Uhrzeit in der Zeitzone tz zurück, zu der index zuletzt geändert wurde.

Typische Argumente für ` tz ` sind ` QTimeZone::UTC ` oder ` QTimeZone::LocalTime`. UTC erfordert keine Umrechnung der von der nativen Dateisystem-API zurückgegebenen Zeit, daher ist die Abfrage der Zeit in UTC potenziell schneller. `LocalTime` wird in der Regel gewählt, wenn die Zeit dem Benutzer angezeigt wird.

Ist ` index ` ungültig, wird ein standardmäßig konstruiertes ` QDateTime ` zurückgegeben.

Diese Funktion wurde in Qt 6.6 eingeführt.

[override virtual] QMimeData *QFileSystemModel::mimeData(const QModelIndexList &indexes) const

Implementiert: ` QAbstractItemModel::mimeData(const QModelIndexList &indexes) const`.

Gibt ein Objekt zurück, das eine serialisierte Beschreibung der angegebenen ` indexes` enthält. Das Format, in dem die den Indizes entsprechenden Elemente beschrieben werden, wird von der Funktion ` mimeTypes()` bereitgestellt.

Ist die Liste der Indizes leer, wird nullptr zurückgegeben, anstatt einer serialisierten leeren Liste.

[override virtual] QStringList QFileSystemModel::mimeTypes() const

Implementiert neu: ` QAbstractItemModel::mimeTypes()` const.

Gibt eine Liste von MIME-Typen zurück, die zur Beschreibung einer Liste von Elementen im Modell verwendet werden können.

QModelIndex QFileSystemModel::mkdir(const QModelIndex &parent, const QString &name)

Erstellen Sie im Modellindex „ parent “ ein Verzeichnis mit dem Namen „ name “.

QVariant QFileSystemModel::myComputer(int role = Qt::DisplayRole) const

Gibt die unter der angegebenen role für den Eintrag „Arbeitsplatz“ gespeicherten Daten zurück.

Siehe auch „ Qt::ItemDataRole “.

QStringList QFileSystemModel::nameFilters() const

Gibt eine Liste der Filter zurück, die auf die Namen im Modell angewendet wurden.

Siehe auch setNameFilters().

[override virtual] QModelIndex QFileSystemModel::parent(const QModelIndex &index) const

Implementiert neu: ` QAbstractItemModel::parent(const QModelIndex &index) const`.

QFileDevice::Permissions QFileSystemModel::permissions(const QModelIndex &index) const

Gibt die vollständige, mit „OR“ verknüpfte Kombination von QFile::Permission für die „ index “ zurück.

bool QFileSystemModel::remove(const QModelIndex &index)

Entfernt das Modellelement „ index “ aus dem Dateisystemmodell und löscht die entsprechende Datei aus dem Dateisystem; bei Erfolg wird „true“ zurückgegeben. Kann das Element nicht entfernt werden, wird „false“ zurückgegeben.

Warnung: Diese Funktion löscht Dateien aus dem Dateisystem; sie verschiebt sie nicht an einen Ort, an dem sie wiederhergestellt werden können.

Siehe auch rmdir().

bool QFileSystemModel::rmdir(const QModelIndex &index)

Entfernt das Verzeichnis, das dem Modellelement „ index “ im Dateisystemmodell entspricht, und löscht das entsprechende Verzeichnis aus dem Dateisystem. Bei Erfolg wird „true“ zurückgegeben. Kann das Verzeichnis nicht entfernt werden, wird „false“ zurückgegeben.

Warnung: Diese Funktion löscht Verzeichnisse aus dem Dateisystem; sie verschiebt sie nicht an einen Ort, an dem sie wiederhergestellt werden können.

Siehe auch remove().

[override virtual] QHash<int, QByteArray> QFileSystemModel::roleNames() const

Implementiert erneut: ` QAbstractItemModel::roleNames()` const.

QDir QFileSystemModel::rootDirectory() const

Das aktuell festgelegte Verzeichnis

Siehe auch rootPath().

QString QFileSystemModel::rootPath() const

Der derzeit festgelegte Stammpfad

Siehe auch setRootPath() und rootDirectory().

[signal] void QFileSystemModel::rootPathChanged(const QString &newPath)

Dieses Signal wird immer dann ausgelöst, wenn der Stammpfad auf newPath geändert wurde.

[override virtual] int QFileSystemModel::rowCount(const QModelIndex &parent = QModelIndex()) const

Implementiert neu: ` QAbstractItemModel::rowCount(const QModelIndex &parent) const`.

[override virtual] bool QFileSystemModel::setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole)

Implementiert: ` QAbstractItemModel::setData` (const QModelIndex &index, const QVariant &value, int role).

Siehe auch data().

void QFileSystemModel::setFilter(QDir::Filters filters)

Setzt den Filter des Verzeichnismodells auf den unter filters angegebenen Wert.

Beachten Sie, dass der von Ihnen festgelegte Filter immer den Enum-Wert „ QDir::AllDirs “ enthalten sollte, da „ QFileSystemModel “ andernfalls die Verzeichnisstruktur nicht lesen kann.

Siehe auch filter() und QDir::Filters.

void QFileSystemModel::setIconProvider(QAbstractFileIconProvider *provider)

Legt die „ provider “ der Dateisymbole für das Verzeichnismodell fest.

Siehe auch ` iconProvider()`.

void QFileSystemModel::setNameFilters(const QStringList &filters)

Legt den Namen „ filters “ fest, der auf die vorhandenen Dateien angewendet werden soll.

Siehe auch nameFilters().

void QFileSystemModel::setOption(QFileSystemModel::Option option, bool on = true)

Legt fest, dass die angegebene Eigenschaft „ option “ aktiviert wird, wenn „ on “ auf „true“ gesetzt ist; andernfalls wird die angegebene Eigenschaft „ option “ zurückgesetzt.

Optionen sollten vor dem Ändern von Eigenschaften festgelegt werden.

Siehe auch options und testOption().

QModelIndex QFileSystemModel::setRootPath(const QString &newPath)

Legt das vom Modell überwachte Verzeichnis auf „ newPath “ fest, indem ein „ file system watcher “ darin installiert wird. Alle Änderungen an Dateien und Verzeichnissen innerhalb dieses Verzeichnisses werden im Modell berücksichtigt.

Wird der Pfad geändert, wird das Signal „ rootPathChanged()“ ausgelöst.

Hinweis: Diese Funktion ändert weder die Struktur des Modells noch die für Ansichten verfügbaren Daten. Mit anderen Worten: Die „Wurzel“ des Modells wird nicht so geändert, dass sie nur noch Dateien und Verzeichnisse innerhalb des durch ` newPath ` angegebenen Verzeichnisses im Dateisystem umfasst.

Siehe auch „ rootPath()“, „ QTreeView::setRootIndex()“ und „ TreeView::rootIndex “.

[override virtual] QModelIndex QFileSystemModel::sibling(int row, int column, const QModelIndex &idx) const

Implementiert neu: ` QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const`.

qint64 QFileSystemModel::size(const QModelIndex &index) const

Gibt die Größe von „ index “ in Byte zurück. Wenn die Datei nicht existiert, wird 0 zurückgegeben.

[override virtual] void QFileSystemModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)

Implementiert: QAbstractItemModel::sort(int column, Qt::SortOrder order).

[override virtual] Qt::DropActions QFileSystemModel::supportedDropActions() const

Implementiert: ` QAbstractItemModel::supportedDropActions()` const.

bool QFileSystemModel::testOption(QFileSystemModel::Option option) const

Gibt „ true “ zurück, wenn die angegebene Funktion „ option “ aktiviert ist; andernfalls wird „false“ zurückgegeben.

Siehe auch ` options ` und ` setOption()`.

[override virtual protected] void QFileSystemModel::timerEvent(QTimerEvent *event)

Implementiert: ` QObject::timerEvent` (`QTimerEvent *event`).

QString QFileSystemModel::type(const QModelIndex &index) const

Gibt den Dateityp index zurück, z. B. „Verzeichnis“ oder „JPEG-Datei“.

© 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.