无法绑定到QML视图/模型中的当前项目

时间:2018-08-08 08:21:36

标签: qt qml qt5

我有一个简单的任务:需要分别输出有关ListView当前项目的一些信息。例如,在Label外,但我无法成功。

我发现了与定义模型的地方有关的问题。如果它是具有ID的单独对象,则会发生此行为。但是,当我在视图内部内联定义它时,一切正常。这种行为很奇怪,看起来像个错误。

要使此代码正常工作,只需切换到带注释的模型定义。任何人都遇到这个问题,或者可能知道什么?

import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3

import Qt.labs.calendar 1.0


ApplicationWindow {
    title: qsTr("Hello World")
    width: 640
    height: 480

    visible: true

    CalendarModel {
        id: myModel

        from: new Date(2018, 0, 1)
        to: new Date(2018, 11, 31)
    }

    ColumnLayout {
        anchors.fill: parent

        Label {
            id: myLabel
            text: "myLabel1"
        }

        Label {
            text: myModel.monthAt(myView.currentIndex)
        }

        ListView {
            id: myView

            Layout.fillWidth: true
            Layout.fillHeight: true

            snapMode: ListView.SnapOneItem
            orientation: ListView.Horizontal
            highlightRangeMode: ListView.StrictlyEnforceRange
            boundsBehavior: Flickable.StopAtBounds

            model: myModel

//            model:  CalendarModel {
//                id: myModel

//                from: new Date(2018, 0, 1)
//                to: new Date(2018, 11, 31)
//            }

            delegate: Rectangle {
                color: "green"
                width: myView.width
                height: 200

                Text {
                    anchors.centerIn: parent
                    text: model.month
                }
            }

            onCurrentIndexChanged: {
                console.log(currentIndex)
                myLabel.text = String(currentIndex)
            }

            ScrollIndicator.horizontal: ScrollIndicator {}
        }
    }
}

0 个答案:

没有答案