QFileSystemModel Class

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

Header: #include <QFileSystemModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherits: 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 には、QApplication のインスタンスが必要です。

使用例

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

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

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

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

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

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

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

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

QFileSystemModel は、setRootPath() が呼び出されるまで、ファイルやディレクトリを取得しません。これにより、Windows 上でドライブをリストするような、その時点までのファイルシステムに対する不要なクエリを防ぐことができます。

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

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

再実装: (const QModelIndex &parent) 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

再実装: (const QModelIndex &index) 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

この関数は Qt 6.6 で導入されました: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

項目 "My Computer" について、与えられたrole の下に格納されたデータを返します。

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 enum 値を含める必要があることに注意してください。そうしないと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 が true の場合、指定されたoption を有効に設定します。そうでない場合、指定されたoption をクリアします。

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

options およびtestOption() も参照

QModelIndex QFileSystemModel::setRootPath(const QString &newPath)

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

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

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

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

[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

再インプリメント: (int column, Qt::SortOrder order):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 ファイルのタイプを返します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。