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 } |
プロパティ
- 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 には、QApplication のインスタンスが必要です。
使用例
デフォルト・ディレクトリの内容を表示するディレクトリ・モデルは、通常、親オブジェクトで構築されます:
QFileSystemModel *model = new QFileSystemModel; model->setRootPath(QDir::currentPath());
ツリービューを使用して、モデルの内容を表示することができます。
そして、ツリービューのルートインデックスを設定することで、特定のディレクトリの内容を表示することができます:
tree->setRootIndex(model->index(QDir::currentPath()));
ビューのルートインデックスは、階層モデルの表示量を制御するために使用することができます。QFileSystemModel には、モデル内のディレクトリへのパスに適したモデル・インデックスを返す便利な関数が用意されています。
キャッシュとパフォーマンス
QFileSystemModel は、setRootPath() が呼び出されるまで、ファイルやディレクトリを取得しません。これにより、Windows 上でドライブをリストするような、その時点までのファイルシステムに対する不要なクエリを防ぐことができます。
QFileSystemModel は別個のスレッドを使用してそれ自身にデータを入力するため、ファイル・システムの照会中にメイン・スレッドがハングすることはありません。rowCount() への呼び出しは、モデルがディレクトリを生成するまで 0 を返します。
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
再実装: (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).
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
再実装: (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
これはオーバーロードされた関数です。
与えられた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
この関数は 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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。