web-dev-qa-db-ja.com

Qmlでフォルダーの内容を一覧表示する方法は?

ファイルシステムにメモを直接保存するために、notes-appの一部を書き直そうとしています。しかし、私はそれらを表示するためではなく、フォルダ内のファイルを一覧表示できるようにしたいのですが、javascript関数で処理したいと思います。

3
Alexandre Roux

FolderListModel を使用してフォルダーの内容を表示する方法の簡単な例を次に示します。

import QtQuick 2.0
import Qt.labs.folderlistmodel 1.0
import Ubuntu.Components 0.1
import Ubuntu.Components.ListItems 0.1 as ListItem

MainView {
    id: root
    width: units.gu(50)
    height: units.gu(75)

    Page {
        id: home
        visible: true
        title: "Files"

        FolderListModel {
            id: folderModel
            folder: "/"
            nameFilters: [ "*" ]
        }

        ListView {
            anchors.fill: parent
            model: folderModel
            delegate: ListItem.Standard {
                text: model.fileName
            }
        }
    }
}

次のようになります。

folder view

もちろん、この情報を使って何かをしたいと思います。残念ながら、あなたが望むように単純にモデルを反復することはできません Beru開発者のブログのこの投稿で説明されています 。彼はRepeaterコンポーネントの使用方法を有益に示しています。

    Repeater {
        model: folderModel

        Component {
            Item {
                Component.onCompleted: {
                    // Do something interesting here...
                    console.log(fileName)
                }
            }
        }
    } 
5
andrewsomething