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
- nameFilterDisables : bool
- options : Options
- readOnly : bool
- resolveSymlinks : bool
Ö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
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
Konstante | Wert | Beschreibung |
---|---|---|
QFileSystemModel::DontWatchForChanges | 0x00000001 | Fü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::DontResolveSymlinks | 0x00000002 | Symlinks im Dateisystemmodell nicht auflösen. Standardmäßig werden Symlinks aufgelöst. |
QFileSystemModel::DontUseCustomDirectoryIcons | 0x00000004 | Verwenden 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
Konstante | Wert | Beschreibung |
---|---|---|
QFileSystemModel::FileIconRole | Qt::DecorationRole | |
QFileSystemModel::FilePathRole | Qt::UserRole + 1 | |
QFileSystemModel::FileNameRole | Qt::UserRole + 2 | |
QFileSystemModel::FilePermissions | Qt::UserRole + 3 | |
QFileSystemModel::FileInfoRole | Qt::UserRole - 4 | Das 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) |
resolveSymlinks : bool
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.