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 } |
プロパティ
- nameFilterDisables : bool
- options : Options
- readOnly : bool
- resolveSymlinks : bool
パブリック関数
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());
モデルの内容を表示するために、ツリービューを使用することができます。
そして、ツリービューのルートインデックスを設定することで、特定のディレクトリの内容を表示することができます:
tree->setRootIndex(model->index(QDir::currentPath()));
ビューのルートインデックスは、階層モデルの表示量を制御するために使用することができます。QFileSystemModel には、モデル内のディレクトリへのパスに適したモデル・インデックスを返す便利な関数が用意されています。
キャッシュとパフォーマンス
QFileSystemModel は別のスレッドを使用してそれ自身にデータを投入するため、ファイル・システムの照会中にメイン・スレッドがハングすることはありません。rowCount() への呼び出しは、モデルがディレクトリを生成するまで0
を返します。QFileSystemModel が存在するスレッドは、受信データを処理するためにイベントループを実行する必要があります。
QFileSystemModel は、setRootPath() が呼び出されるまで、自分自身への入力を開始しません。これにより、Windows 上でドライブを列挙するような、システムのルート・ファイル・システムに対する不要なクエリを、その時点まで防ぐことができます。
QFileSystemModel はファイル情報のキャッシュを保持します。キャッシュはQFileSystemWatcher を使って自動的に最新の状態に保たれます。
モデル・クラス」も参照してください 。
メンバ型ドキュメント
enum QFileSystemModel::Option
flags QFileSystemModel::Options
定数 | 値 | 説明 |
---|---|---|
QFileSystemModel::DontWatchForChanges | 0x00000001 | パスにファイルウォッチャーを追加しません。これにより、行の編集補完のような単純なタスクにモデルを使用する際のオーバーヘッドを減らすことができます。 |
QFileSystemModel::DontResolveSymlinks | 0x00000002 | ファイルシステムモデルでシンボリックリンクを解決しません。デフォルトでは、シンボリックリンクは解決されます。 |
QFileSystemModel::DontUseCustomDirectoryIcons | 0x00000004 | 常にデフォルトのディレクトリアイコンを使用してください。プラットフォームによっては、ユーザーが別のアイコンを設定できるものもあります。カスタム・アイコンを検索すると、ネットワーク・ドライブやリムーバブル・ドライブでのパフォーマンスに大きな影響を与えます。そのため、アイコン・プロバイダの QFileIconProvider::DontUseCustomDirectoryIcons オプションを設定します。 |
Options 型はQFlags<Option> の typedef です。これは、Option 値の OR の組み合わせを格納します。
resolveSymlinksも参照してください 。
enum QFileSystemModel::Roles
定数 | 値 | 説明 |
---|---|---|
QFileSystemModel::FileIconRole | Qt::DecorationRole | |
QFileSystemModel::FilePathRole | Qt::UserRole + 1 | |
QFileSystemModel::FileNameRole | Qt::UserRole + 2 | |
QFileSystemModel::FilePermissions | Qt::UserRole + 3 | |
QFileSystemModel::FileInfoRole | Qt::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) |
resolveSymlinks : bool
このプロパティは、ディレクトリモデルがシンボリックリンクを解決すべきかどうかを保持します。
これは 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).
row とcolumn とparent インデックスによって指定されたモデルの行の上に、与えられた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
これはオーバーロードされた関数である。
与えられたpath とcolumn のモデルアイテムインデックスを返します。
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 を返す。
[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.