在Qt编程中将数据存在ListModel中

之前说过将数据存在数据库,然后展示在用户界面上的方法,今天说个简单一点的,是将数据库存在QML文件中。

先写好数据,就是创建一个ListModel,然后每一项数据写一个ListElement,文件名是RouteList.qml。

import QtQuick 2.0

ListModel {
    ListElement {
        route: "S06"
        routeid: "s06"
    }
    ListElement {
        route: "S09"
        routeid: "s09"
    }
    ListElement {
        route: "S10"
        routeid: "s10"
    }
}

然后同样地,创建一个View来展示数据。可以看到最下面,创建了一个RouteList对象routelistmodel,和上面的文件名对应。接着把silicalistview的model设为routelistmodel。Delegate使用ListItem来展示数据。

import QtQuick 2.0
import Sailfish.Silica 1.0
import "../models"
import "../pages"

Item {
    id: routeslistitem

    height: slideshowview.height
    width: slideshowview.width

    SilicaListView {
        id: silicalistview
        anchors.fill: parent
        clip: true

        model: routeslistmodel

        delegate: ListItem {
            id:listitem

            width: parent.width

            onClicked: {
                pageStack.push(Qt.resolvedUrl("../pages/RoutePage.qml"),
                               {rt: routeid})
            }

            Label {
                text: route
                x: Theme.paddingLarge
                anchors.verticalCenter: parent.verticalCenter
            }
        }

        VerticalScrollDecorator {}
    }

    RoutesList {
        id: routeslistmodel
    }
}

这样就完成将ListModel的数据展示到SilicaListView上的代码了。

posted @ 2025-05-12 13:51  fishegg  阅读(36)  评论(0)    收藏  举报