FolderListModel QML Type
FolderListModel は、ファイルシステムのフォルダーの内容のモデルを提供します。詳細...
Import Statement: | import Qt.labs.folderlistmodel 2.8 |
プロパティ
- caseSensitive : bool
- count : int
- folder : url
- nameFilters : list<string>
- parentFolder : url
- rootFolder : url
- showDirs : bool
- showDirsFirst : bool
- showDotAndDotDot : bool
- showFiles : bool
- showHidden : bool
- showOnlyReadable : bool
- sortCaseSensitive : bool
- sortField : enumeration
- sortReversed : bool
- status : enumeration
メソッド
詳細説明
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 |
フィルタ条件に一致する現在のフォルダ内のアイテムの数を返します。
folder : url |
folder プロパティは、モデルが現在提供しているフォルダの URL を保持します。
値は、file
: またはqrc
:URL または相対 URL でなければなりません。
既定値は、FolderListModel が最初に初期化された時点でのアプリケーションの作業ディレクトリです。
nameFilters プロパティには、ファイル名フィルタのリストが含まれます。フィルタには、ワイルドカード「?
以下の例では、PNG ファイルと JPEG ファイルをフィルタリングしています:
FolderListModel { nameFilters: [ "*.png", "*.jpg" ] }
注意: ディレクトリはフィルタによって除外されません。
rootFolder : url |
このプロパティが設定されている場合、指定されたフォルダはファイルシステムのルートとして扱われるため、その中のサブフォルダのみをたどることができます。
showDirs : bool |
trueの場合、ディレクトリがモデルに含まれ、そうでない場合はファイルのみが含まれます。
デフォルトでは、このプロパティは true です。
nameFilters はディレクトリには適用されないことに注意してください。
showDotAndDotDotも参照してください 。
showDirsFirst : bool |
trueを指定すると、ディレクトリがモデルに含まれる場合、常に最初に表示され、次にファイルが表示されます。
デフォルトでは、このプロパティはfalseです。
showDotAndDotDot : bool |
showFiles : bool |
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も参照 。
status : enumeration |
このプロパティは、フォルダの読み取り状態を保持します。以下のいずれかを指定します:
定数 | 説明 |
---|---|
FolderListModel.Null | folder が設定されていない |
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' }
メソッドの説明
与えられた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
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。