FolderListModel QML Type

FolderListModel は、ファイルシステムのフォルダーの内容のモデルを提供します。詳細...

Import Statement: import Qt.labs.folderlistmodel 2.8

プロパティ

メソッド

詳細説明

FolderListModel は、ローカル ファイル システム内のフォルダーの内容に関する情報へのアクセスを提供し、ビューやその他のデータ コンポーネントにファイルのリストを公開します。

注: この型は、Qt.labs.folderlistmodel モジュールをインポートすることで利用可能になります。Qt.labs モジュールの要素は、将来のバージョンでも互換性が保たれる保証はありません。

注: FolderListModel の一部の機能はQFileSystemWatcher に依存しています。QFileSystemWatcher が無効になっている場合、setFolder を使用して設定されたフォルダの変更は監視されません。その結果、ディレクトリの変更時に通常発せられるシグナル(directoryUpdated や directoryChanged など)が、手動でsetFolder を再度呼び出さなければ発せられなくなります。詳細については、Qt Configure Options を参照してください。

import Qt.labs.folderlistmodel

folder プロパティは、アクセスするフォルダを指定します。フォルダー内のファイルやディレクトリーに関する情報は、モデルのインターフェースを介して提供されます。コンポーネントは、以下のロールを介して名前とパスにアクセスします:

  • fileName ( )string
  • filePath ( )string
  • fileURL ( ) (Qt 5.2 以降。Qt 5.15 以降では非推奨)url
  • fileUrl ( ) (Qt 5.15 以降)url
  • fileBaseName ( )string
  • fileSuffix ( )string
  • fileSize ( )qlonglong
  • fileModified ( )date
  • fileAccessed ( )date
  • fileIsDir ( )bool

さらに、isFolder() メソッドによって、ファイルエントリとフォルダエントリを区別することもできます。

フィルタリング

モデルによって公開されるファイルやディレクトリの数をフィルタリングするために、さまざまなプロパティを設定することができます。

nameFilters プロパティには、ファイルとディレクトリの名前に適用されるワイルドカード・フィルタのリストを設定することができ、フィルタに一致するものだけが公開されます。

ディレクトリは、showDirs プロパティを使用して含めることも除外することもできます。ナビゲーション・ディレクトリは、showDotAndDotDot プロパティを false に設定することによって除外することもできます。隠しファイルは、showHidden プロパティを使用して含めることも除外することもできます。

公開するファイルやディレクトリを、ユーザがアクセスできるものに限定すると便利な場合があります。この機能を有効にするには、showOnlyReadable プロパティを設定します。

使用例

以下の例では、ListView 内の QML ファイルのリストを提供するために FolderListModel を使用しています:

import QtQuick
import Qt.labs.folderlistmodel

ListView {
    width: 200; height: 400

    FolderListModel {
        id: folderModel
        nameFilters: ["*.qml"]
    }

    Component {
        id: fileDelegate
        required property string fileName
        Text { text: fileName }
    }

    model: folderModel
    delegate: fileDelegate
}

パスの区切り文字

Qt では、URL のパス区切り文字として "/" が使われているのと同じように、"/" を普遍的なディレク トリ区切り文字として使っています。常に "/" をディレクトリ区切り文字として使用する場合、Qt はパスをオペレーティングシステムに合わせて変換します。

QML データモデルも参照してください

プロパティのドキュメント

caseSensitive : bool

大文字小文字を区別するパターンマッチを使用します。

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


count : int [read-only]

フィルタ条件に一致する現在のフォルダ内のアイテムの数を返します。


folder : url

folder プロパティは、モデルが現在提供しているフォルダの URL を保持します。

値は、file: またはqrc :URL または相対 URL でなければなりません。

既定値は、FolderListModel が最初に初期化された時点でのアプリケーションの作業ディレクトリです。


nameFilters : list<string>

nameFilters プロパティには、ファイル名フィルタのリストが含まれます。フィルタには、ワイルドカード「?

以下の例では、PNG ファイルと JPEG ファイルをフィルタリングしています:

FolderListModel {
    nameFilters: [ "*.png", "*.jpg" ]
}

注意: ディレクトリはフィルタによって除外されません。


parentFolder : url [read-only]

現在のfolder の親の URL を返します。


rootFolder : url

このプロパティが設定されている場合、指定されたフォルダはファイルシステムのルートとして扱われるため、その中のサブフォルダのみをたどることができます。


showDirs : bool

trueの場合、ディレクトリがモデルに含まれ、そうでない場合はファイルのみが含まれます。

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

nameFilters はディレクトリには適用されないことに注意してください。

showDotAndDotDotも参照してください


showDirsFirst : bool

trueを指定すると、ディレクトリがモデルに含まれる場合、常に最初に表示され、次にファイルが表示されます。

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


showDotAndDotDot : bool

trueの場合、". "と"... "ディレクトリはモデルに含まれ、そうでない場合は除外されます。

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

showDirsも参照してください


showFiles : bool

trueを指定すると、ファイルがモデルに含まれ、そうでない場合はディレクトリのみが含まれます。

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

showDirs参照して ください。


showHidden : bool

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

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


showOnlyReadable : bool

このプロパティが true の場合、読み取り可能なファイルとディレクトリのみが表示され、そうでない場 合はすべてのファイルとディレクトリが表示されます。

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

showDirsも参照してください


sortCaseSensitive : bool

true に設定すると、大文字と小文字が区別されます。このプロパティの既定値はtrue です。


sortField : enumeration

sortField プロパティには、並べ替えに使用するフィールドが含まれます。sortField には、以下のいずれかを指定します:

定数説明
FolderListModel.Unsorted並べ替えは適用されません
FolderListModel.Nameファイル名でソート(デフォルト)
FolderListModel.Time更新時間でソート
FolderListModel.Sizeファイルサイズでソート
FolderListModel.Typeファイルタイプ/拡張子でソート

sortReversedも参照


sortReversed : bool

trueに設定すると、ソート順を逆にします。デフォルトは false です。

sortField参照して ください。


status : enumeration [read-only]

このプロパティは、フォルダの読み取り状態を保持します。以下のいずれかを指定します:

定数説明
FolderListModel.Nullfolder が設定されていない
FolderListModel.Readyフォルダが読み込まれた
FolderListModel.Loadingフォルダは現在ロードされています。

このステータスを使用して、更新を提供するか、または何らかの方法でステータスの変更に応答します。例えば、以下のようなことが可能です:

  • 状態変更をトリガーする:
    State { name: 'loaded'; when: folderModel.status == FolderListModel.Ready }
  • onStatusChanged シグナルハンドラを実装する:
    FolderListModel {
        id: folderModel
        onStatusChanged: if (folderModel.status == FolderListModel.Ready) console.log('Loaded')
    }
  • ステータス値にバインドする:
    Text { text: folderModel.status == FolderListModel.Ready ? 'Loaded' : 'Not loaded' }

メソッドの説明

var get(int index, string property)

与えられたindex のフォルダproperty を返す。以下のプロパティが利用可能です:

  • fileName ( )string
  • filePath ( )string
  • fileURL ( ) (Qt 5.2 以降。Qt 5.15 以降では非推奨)url
  • fileUrl ( ) (Qt 5.15 以降)url
  • fileBaseName ( )string
  • fileSuffix ( )string
  • fileSize ( )qlonglong
  • fileModified ( )date
  • fileAccessed ( )date
  • fileIsDir ( )bool

int indexOf(url file)

与えられたfile URL がモデルに含まれていればそのインデックスを、含まれていなければ -1 を返します。


bool isFolder(int index)

エントリindex がフォルダの場合は true を返し、そうでない場合は false を返します。


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