QFileSystemModel Class

QFileSystemModel クラスは、ローカルファイルシステムのデータモデルを提供します。詳細...

ヘッダー #include <QFileSystemModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
継承: QAbstractItemModel

パブリックな型

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

プロパティ

パブリック関数

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

再実装パブリック関数

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

シグナル

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

再実装された保護された関数

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

詳しい説明

このクラスはローカルのファイルシステムへのアクセスを提供し、 ファイルやディレクトリのリネームや削除、新しいディレクトリの作成のための関数を提供します。最も単純なケースでは、ブラウザやフィルタの一部として適切な表示ウィジェットと共に使用することができます。

QFileSystemModel は、QAbstractItemModel によって提供される標準インターフェイスを使用してアクセスすることができますが、ディレクトリモデルに特化したいくつかの便利な関数も提供します。fileInfo ()、isDir ()、fileName ()、filePath ()関数は、モデル内のアイテムに関連する基本的なファイルとディレクトリに関する情報を提供します。ディレクトリは、mkdir()、rmdir() を使用して作成および削除できます。

使用例

デフォルト・ディレクトリの内容を表示するディレクトリ・モデルは、通常、親オブジェクトで構築されます:

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

モデルの内容を表示するために、ツリービューを使用することができます。

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

そして、ツリービューのルートインデックスを設定することで、特定のディレクトリの内容を表示することができます:

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

ビューのルートインデックスは、階層モデルの表示量を制御するために使用することができます。QFileSystemModel には、モデル内のディレクトリへのパスに適したモデル・インデックスを返す便利な関数が用意されています。

キャッシュとパフォーマンス

QFileSystemModel は別のスレッドを使用してそれ自身にデータを投入するため、ファイル・システムの照会中にメイン・スレッドがハングすることはありません。rowCount() への呼び出しは、モデルがディレクトリを生成するまで0 を返します。QFileSystemModel が存在するスレッドは、受信データを処理するためにイベントループを実行する必要があります。

QFileSystemModel は、setRootPath() が呼び出されるまで、自分自身への入力を開始しません。これにより、Windows 上でドライブを列挙するような、システムのルート・ファイル・システムに対する不要なクエリを、その時点まで防ぐことができます。

QFileSystemModel はファイル情報のキャッシュを保持します。キャッシュはQFileSystemWatcher を使って自動的に最新の状態に保たれます。

モデル・クラス」も参照してください

メンバ型ドキュメント

enum QFileSystemModel::Option
flags QFileSystemModel::Options

定数説明
QFileSystemModel::DontWatchForChanges0x00000001パスにファイルウォッチャーを追加しません。これにより、行の編集補完のような単純なタスクにモデルを使用する際のオーバーヘッドを減らすことができます。
QFileSystemModel::DontResolveSymlinks0x00000002ファイルシステムモデルでシンボリックリンクを解決しません。デフォルトでは、シンボリックリンクは解決されます。
QFileSystemModel::DontUseCustomDirectoryIcons0x00000004常にデフォルトのディレクトリアイコンを使用してください。プラットフォームによっては、ユーザーが別のアイコンを設定できるものもあります。カスタム・アイコンを検索すると、ネットワーク・ドライブやリムーバブル・ドライブでのパフォーマンスに大きな影響を与えます。そのため、アイコン・プロバイダの QFileIconProvider::DontUseCustomDirectoryIcons オプションを設定します。

Options 型はQFlags<Option> の typedef です。これは、Option 値の OR の組み合わせを格納します。

resolveSymlinksも参照してください

enum QFileSystemModel::Roles

定数説明
QFileSystemModel::FileIconRoleQt::DecorationRole
QFileSystemModel::FilePathRoleQt::UserRole + 1
QFileSystemModel::FileNameRoleQt::UserRole + 2
QFileSystemModel::FilePermissionsQt::UserRole + 3
QFileSystemModel::FileInfoRoleQt::UserRole - 4インデックスのQFileInfo オブジェクト

プロパティの説明

nameFilterDisables : bool

このプロパティは、名前フィルタを通らないファイルを非表示にするか無効にするかを保持します。

このプロパティはデフォルトでtrue です。

アクセス関数です:

bool nameFilterDisables() const
void setNameFilterDisables(bool enable)

options : Options

このプロパティは、モデルに影響を与える様々なオプションを保持します。

デフォルトでは、すべてのオプションは無効になっています。

プロパティを変更する前にオプションを設定する必要があります。

アクセス関数:

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

setOption() およびtestOption()も参照してください

readOnly : bool

このプロパティは、ディレクトリモデルがファイルシステムへの書き込みを許可するかどうかを保持する。

このプロパティをfalseに設定すると、ディレクトリモデルはファイルやディレクトリの名前変更、コピー、削除を許可します。

このプロパティのデフォルトはtrue です。

アクセス関数です:

bool isReadOnly() const
void setReadOnly(bool enable)

このプロパティは、ディレクトリモデルがシンボリックリンクを解決すべきかどうかを保持します。

これは Windows でのみ有効です。

デフォルトでは、このプロパティはtrue です。

アクセス関数:

bool resolveSymlinks() const
void setResolveSymlinks(bool enable)

QFileSystemModel::Optionsも参照してください

メンバ関数ドキュメント

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

与えられたparent でファイルシステムモデルを構築する。

[virtual noexcept] QFileSystemModel::~QFileSystemModel()

このファイル・システム・モデルを破棄する。

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

再実装:QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.

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

再実装:QAbstractItemModel::columnCount(const QModelIndex &parent) const.

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

再実装:QAbstractItemModel::data(const QModelIndex &index, int role) const.

setData()も参照してください

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

このシグナルは、ギャザラースレッドがpath をロードし終わったときに発せられる。

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

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

rowcolumnparent インデックスによって指定されたモデルの行の上に、与えられたaction で終了したドラッグ&ドロップ操作によって供給されたdata を処理します。操作が成功した場合は真を返します。

supportedDropActions()も参照してください

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

再インプリメント:QObject::event(QEvent *e).

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

再実装:QAbstractItemModel::fetchMore(const QModelIndex &parent).

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

与えられたindex のモデルに格納されているアイテムのアイコンを返します。

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

与えられたindex のモデルに格納されているアイテムのQFileInfo を返します。

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

与えられたindex のモデルに格納されているアイテムのファイル名を返します。

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

指定されたindex のモデルに格納されているアイテムのパスを返します。

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

このシグナルは、oldName のファイルがnewName にリネームされるたびに発行される。 ファイルはpath ディレクトリにある。

QDir::Filters QFileSystemModel::filter() const

ディレクトリモデルに指定されたフィルタを返す。

フィルターが設定されていない場合、デフォルトのフィルターはQDir::AllEntries |QDir::NoDotAndDotDot |QDir::AllDirs です。

setFilter() およびQDir::Filtersも参照

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

再実装:QAbstractItemModel::flags(const QModelIndex &index) const.

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

再実装:QAbstractItemModel::hasChildren(const QModelIndex &parent) const.

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

再インプリメント:QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.

QAbstractFileIconProvider *QFileSystemModel::iconProvider() const

このディレクトリモデルのファイルアイコンプロバイダを返します。

setIconProvider()も参照してください

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

再実装:QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.

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

これはオーバーロードされた関数である。

与えられたpathcolumn のモデルアイテムインデックスを返します。

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

モデル項目index がディレクトリを表している場合はtrue を返し、そうでない場合はfalse を返す。

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

index が最後に更新された日時(現地時間)を返す。

これはオーバーロードされた関数であり、callと同等である:

lastModified(index, QTimeZone::LocalTime);

index が無効な場合は、デフォルトで構築されたQDateTime が返される。

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

index が最後に変更された日時を、タイムゾーンtz で返す。

tz の典型的な引数はQTimeZone::UTC またはQTimeZone::LocalTime である。UTCは、ネイティブのファイルシステムAPIが返す時刻からの変換を必要としないため、UTCで時刻を取得する方が高速になる可能性がある。ユーザーに時刻を表示する場合は、通常LocalTimeが選択される。

index が無効な場合、デフォルトのQDateTime が返されます。

この関数は Qt 6.6 で導入されました。

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

再実装:QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

指定されたindexes のシリアライズされた説明を含むオブジェクトを返します。インデックスに対応する項目を記述するために使用されるフォーマットは、mimeTypes() 関数から取得されます。

インデックスのリストが空の場合は、シリアライズされた空のリストではなくnullptr が返されます。

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

再実装:QAbstractItemModel::mimeTypes() const.

モデル内のアイテムのリストを記述するために使用できる MIME タイプのリストを返します。

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

parent モデル・インデックスにname のディレクトリを作成する。

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

指定されたrole の下に保存されている、"My Computer" という項目のデータを返します。

Qt::ItemDataRoleも参照

QStringList QFileSystemModel::nameFilters() const

モデル内の名前に適用されたフィルタのリストを返します。

setNameFilters()も参照してください

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

再実装:QAbstractItemModel::parent(const QModelIndex &index) const.

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

index に対する QFile::Permission の完全な OR 組合せを返します。

bool QFileSystemModel::remove(const QModelIndex &index)

ファイルシステムモデルからモデル項目index を削除し、対応するファイルをファイルシステムから削除します。削除できない場合は false を返します。

警告: この関数は、ファイルをファイル・システムから削除するものであり、ファイルを復元可能な場所に移動するものではありません。

rmdir()も参照のこと

bool QFileSystemModel::rmdir(const QModelIndex &index)

ファイルシステムモデルのモデル項目index に対応するディレクトリを削除し、対応するディレクトリをファイルシステムから削除する。ディレクトリを削除できない場合は false を返します。

警告 この関数はファイル・システムからディレクトリを削除する。

remove()も参照のこと

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

再実装:QAbstractItemModel::roleNames() const.

QDir QFileSystemModel::rootDirectory() const

現在設定されているディレクトリ

rootPath()も参照

QString QFileSystemModel::rootPath() const

現在設定されているルートパス

setRootPath() およびrootDirectory()も参照

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

このシグナルは、ルートパスがnewPath に変更されるたびに発せられる。

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

再実装:QAbstractItemModel::rowCount(const QModelIndex &parent) const.

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

再実装:QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role)。

data()も参照してください

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

ディレクトリモデルのフィルタをfilters で指定されたものに設定する。

QDir::AllDirs そうしないと、QFileSystemModel はディレクトリ構造を読み取ることができません。

filter() およびQDir::Filtersも参照のこと

void QFileSystemModel::setIconProvider(QAbstractFileIconProvider *provider)

ディレクトリモデルのファイルアイコンのprovider を設定する。

iconProvider()も参照してください

void QFileSystemModel::setNameFilters(const QStringList &filters)

既存のファイルに対して適用する名前filters を設定する。

nameFilters()も参照

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

on が真の場合、与えられたoption を有効に設定する。そうでない場合、与えられたoption をクリアする。

オプションは、プロパティを変更する前に設定する必要があります。

options およびtestOption()も参照してください

QModelIndex QFileSystemModel::setRootPath(const QString &newPath)

モデルが監視しているディレクトリにfile system watcher をインストールしてnewPath に設定します。このディレクトリ内のファイルやディレクトリの変更はモデルに反映されます。

パスが変更されると、rootPathChanged() シグナルが発せられます。

注意: この関数はモデルの構造を変更したり、ビューで利用可能なデータを変更したりはしません。言い換えると、モデルの "ルート "は変更されず、ファイルシステム内のnewPath で指定されたディレクトリ内のファイルとディレクトリのみが含まれます。

rootPath()、QTreeView::setRootIndex()、TreeView::rootIndexも参照のこと

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

再実装:QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.

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

index のサイズをバイト数で返す。 ファイルが存在しない場合は 0 を返す。

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

を再実装しています:QAbstractItemModel::sort(int column, Qt::SortOrder order).

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

再実装:QAbstractItemModel::supportedDropActions() const.

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

与えられたoption が有効であればtrue を返し、そうでなければ false を返す。

options およびsetOption()も参照

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

再実装:QObject::timerEvent(QTimerEvent *event).

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

Directory" や "JPEG file" のような、index ファイルのタイプを返す。

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