QFileSystemModel Class

Die Klasse QFileSystemModel bietet ein Datenmodell für das lokale Dateisystem. Mehr...

Kopfzeile: #include <QFileSystemModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Vererbt: 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

Reimplementierte ö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)

Reimplementierte geschützte Funktionen

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

Detaillierte Beschreibung

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

QFileSystemModel kann über die von QAbstractItemModel bereitgestellte Standardschnittstelle angesprochen werden, bietet aber auch einige Komfortfunktionen, die spezifisch für ein Verzeichnismodell sind. Die Funktionen fileInfo(), isDir(), fileName() und filePath() liefern Informationen über die zugrundeliegenden Dateien und Verzeichnisse, die mit den Elementen im Modell verbunden sind. Verzeichnisse können mit mkdir(), rmdir() erstellt und entfernt werden.

Beispiel für die Verwendung

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

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

Eine Baumansicht kann verwendet werden, um den Inhalt des Modells anzuzeigen

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

und der Inhalt eines bestimmten Verzeichnisses kann angezeigt werden, indem der Wurzelindex der Baumansicht gesetzt wird:

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

Der Wurzelindex der Ansicht kann verwendet werden, um zu steuern, wie viel von einem hierarchischen Modell angezeigt wird. QFileSystemModel bietet eine Komfortfunktion, 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 aufzufüllen, so dass der Hauptthread nicht hängen bleibt, während das Dateisystem abgefragt wird. Aufrufe von rowCount() geben 0 zurück, bis das Modell ein Verzeichnis gefüllt hat. Der Thread, in dem sich das QFileSystemModel befindet, muss eine Ereignisschleife ausführen, um die eingehenden Daten zu verarbeiten.

QFileSystemModel wird nicht damit beginnen, sich selbst aufzufüllen, bis setRootPath() aufgerufen wird. Dies verhindert unnötige Abfragen des Root-Dateisystems des Systems, wie z.B. das Aufzählen der Laufwerke unter Windows, bis zu diesem Zeitpunkt.

QFileSystemModel führt einen Cache mit Dateiinformationen. Der Cache wird automatisch mit Hilfe der QFileSystemWatcher auf dem neuesten Stand gehalten.

Siehe auch Model-Klassen.

Dokumentation der Mitgliedstypen

enum QFileSystemModel::Option
flags QFileSystemModel::Options

KonstanteWertBeschreibung
QFileSystemModel::DontWatchForChanges0x00000001Fügt den Pfaden keine Dateiüberwachungen hinzu. Dies reduziert den Overhead bei der Verwendung des Modells für einfache Aufgaben wie die Vervollständigung der Zeilenbearbeitung.
QFileSystemModel::DontResolveSymlinks0x00000002Symlinks im Dateisystemmodell nicht auflösen. Standardmäßig werden Symlinks aufgelöst.
QFileSystemModel::DontUseCustomDirectoryIcons0x00000004Verwenden Sie immer das Standard-Verzeichnissymbol. Einige Plattformen erlauben es dem Benutzer, ein anderes Symbol zu setzen. Die benutzerdefinierte Suche nach einem Symbol hat einen großen Einfluss auf die Leistung von Netzwerk- oder Wechsellaufwerken. Dies setzt die Option QFileIconProvider::DontUseCustomDirectoryIcons im Icon Provider entsprechend.

Der Options-Typ 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::UserRole - 4Das QFileInfo Objekt für den Index

Eigenschaft Dokumentation

nameFilterDisables : bool

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

Diese Eigenschaft ist standardmäßig true

Zugriffsfunktionen:

bool nameFilterDisables() const
void setNameFilterDisables(bool enable)

options : Options

Diese Eigenschaft enthält die verschiedenen Optionen, die das Modell betreffen

In der Standardeinstellung sind alle Optionen deaktiviert.

Die Optionen sollten vor der Änderung der Eigenschaften eingestellt 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 erlaubt

Wenn diese Eigenschaft auf false gesetzt ist, erlaubt das Verzeichnismodell das Umbenennen, Kopieren und Löschen von Dateien und Verzeichnissen.

Diese Eigenschaft ist standardmäßig true

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

Zugriffsfunktionen:

bool resolveSymlinks() const
void setResolveSymlinks(bool enable)

Siehe auch QFileSystemModel::Options.

Dokumentation der Mitgliedsfunktionen

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

Konstruiert ein Dateisystemmodell mit dem angegebenen parent.

[virtual noexcept] QFileSystemModel::~QFileSystemModel()

Zerstört dieses Dateisystemmodell.

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

Reimplements: QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.

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

Reimplements: QAbstractItemModel::columnCount(const QModelIndex &parent) const.

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

Reimplements: QAbstractItemModel::data(const QModelIndex &index, int role) const.

Siehe auch setData().

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

Dieses Signal wird ausgegeben, wenn der Gatherer-Thread das Laden des path beendet hat.

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

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

Verarbeitet die data, die von einer Drag&Drop-Operation geliefert wurde, die mit dem angegebenen action über der Zeile in dem Modell endete, das durch row und column sowie durch den Index parent angegeben ist. Gibt true zurück, wenn der Vorgang erfolgreich war.

Siehe auch supportedDropActions().

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

Reimplements: QObject::event(QEvent *e).

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

Reimplements: QAbstractItemModel::fetchMore(const QModelIndex &parent).

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

Gibt das Symbol für das im Modell gespeicherte Element unter dem angegebenen index zurück.

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

Gibt die QFileInfo für das im Modell gespeicherte Element unter der angegebenen index zurück.

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

Gibt den Dateinamen für das im Modell gespeicherte Element unter dem angegebenen index zurück.

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

Gibt den Pfad des im Modell gespeicherten Elements unter dem angegebenen index zurück.

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

Dieses Signal wird ausgegeben, wenn eine Datei mit der Bezeichnung oldName erfolgreich in newName umbenannt wurde. Die Datei befindet sich im Verzeichnis path.

QDir::Filters QFileSystemModel::filter() const

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

Wenn kein Filter gesetzt wurde, ist der Standardfilter QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs.

Siehe auch setFilter() und QDir::Filters.

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

Reimplements: QAbstractItemModel::flags(const QModelIndex &index) const.

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

Reimplements: QAbstractItemModel::hasChildren(const QModelIndex &parent) const.

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

Reimplements: QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.

QAbstractFileIconProvider *QFileSystemModel::iconProvider() const

Gibt den Dateisymbolanbieter für dieses Verzeichnismodell zurück.

Siehe auch setIconProvider().

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

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

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

Dies ist eine überladene Funktion.

Gibt den Index des Modellelements für die angegebenen path und column zurück.

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

Gibt true zurück, wenn das Modellelement index ein Verzeichnis darstellt; andernfalls gibt es false zurück.

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 einem Aufruf entspricht:

lastModified(index, QTimeZone::LocalTime);

Wenn index ungültig ist, wird eine Standardkonstruktion 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, wann index zuletzt geändert wurde.

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

Wenn index ungültig ist, wird eine Standardkonstruktion QDateTime zurückgegeben.

Diese Funktion wurde in Qt 6.6 eingeführt.

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

Reimplements: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

Gibt ein Objekt zurück, das eine serialisierte Beschreibung der angegebenen indexes enthält. Das Format, das zur Beschreibung der den Indizes entsprechenden Elemente verwendet wird, wird von der Funktion mimeTypes() bezogen.

Wenn die Liste der Indizes leer ist, wird nullptr anstelle einer serialisierten leeren Liste zurückgegeben.

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

Reimplements: 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 ein Verzeichnis mit dem name im parent Modellverzeichnis.

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

Gibt die Daten zurück, die unter dem angegebenen role für das Element "Mein Computer" gespeichert sind.

Siehe auch Qt::ItemDataRole.

QStringList QFileSystemModel::nameFilters() const

Gibt eine Liste von Filtern zurück, die auf die Namen im Modell angewendet wurden.

Siehe auch setNameFilters().

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

Reimplements: QAbstractItemModel::parent(const QModelIndex &index) const.

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

Gibt die komplette ODER-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. Wenn das Element nicht entfernt werden kann, 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. Wenn das Verzeichnis nicht entfernt werden kann, 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

Reimplements: QAbstractItemModel::roleNames() const.

QDir QFileSystemModel::rootDirectory() const

Das aktuell eingestellte Verzeichnis

Siehe auch rootPath().

QString QFileSystemModel::rootPath() const

Der aktuell eingestellte Wurzelpfad

Siehe auch setRootPath() und rootDirectory().

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

Dieses Signal wird ausgegeben, wenn der Wurzelpfad in newPath geändert wurde.

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

Reimplements: QAbstractItemModel::rowCount(const QModelIndex &parent) const.

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

Reimplements: 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 von filters angegebenen Wert.

Beachten Sie, dass der Filter, den Sie setzen, immer den Wert QDir::AllDirs enum enthalten sollte, da QFileSystemModel sonst nicht in der Lage sein wird, die Verzeichnisstruktur zu lesen.

Siehe auch filter() und QDir::Filters.

void QFileSystemModel::setIconProvider(QAbstractFileIconProvider *provider)

Setzt die provider von Dateisymbolen für das Verzeichnismodell.

Siehe auch iconProvider().

void QFileSystemModel::setNameFilters(const QStringList &filters)

Legt den Namen filters fest, der auf die vorhandenen Dateien anzuwenden ist.

Siehe auch nameFilters().

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

Setzt das angegebene option auf aktiv, wenn on wahr ist; andernfalls wird das angegebene option gelöscht.

Optionen sollten vor dem Ändern von Eigenschaften gesetzt werden.

Siehe auch options und testOption().

QModelIndex QFileSystemModel::setRootPath(const QString &newPath)

Setzt das Verzeichnis, das vom Modell überwacht wird, auf newPath, indem ein file system watcher darauf installiert wird. Alle Änderungen an Dateien und Verzeichnissen innerhalb dieses Verzeichnisses werden im Modell wiedergegeben.

Wenn der Pfad geändert wird, wird das Signal rootPathChanged() ausgegeben.

Hinweis: Diese Funktion ändert nicht die Struktur des Modells oder die für die Ansichten verfügbaren Daten. Mit anderen Worten, die "Wurzel" des Modells wird nicht geändert, so dass nur Dateien und Verzeichnisse innerhalb des durch newPath angegebenen Verzeichnisses im Dateisystem enthalten sind.

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

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

Reimplements: QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.

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

Gibt die Größe in Bytes von index zurück. Existiert die Datei nicht, wird 0 zurückgegeben.

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

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

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

Reimplements: QAbstractItemModel::supportedDropActions() const.

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

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

Siehe auch options und setOption().

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

Reimplements: QObject::timerEvent(QTimerEvent *event).

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

Gibt den Typ der Datei index zurück, z. B. "Verzeichnis" oder "JPEG-Datei".

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