web-dev-qa-db-fra.com

Comment lister le contenu des dossiers en Qml?

J'essaie de réécrire une partie de l'application de notes afin de stocker des notes directement dans le système de fichiers. Mais j'aimerais pouvoir lister les fichiers dans un dossier, pas pour les afficher, mais pour les traiter avec une fonction javascript.

3
Alexandre Roux

Voici un exemple rapide sur la manière d’afficher le contenu d’un dossier à l’aide de 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
            }
        }
    }
}

On dirait:

folder view

Maintenant, bien sûr, vous voulez faire quelque chose avec cette information. Malheureusement, vous ne pouvez pas parcourir le modèle aussi simplement que vous le souhaitez expliqué dans ce message sur le blog du développeur Ber . Il montre utilement comment utiliser le composant Repeater:

    Repeater {
        model: folderModel

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