Родительский флажок Qml в заголовке списка не может проверять все дочерние флажки - PullRequest
0 голосов
/ 09 июля 2020

Сначала вроде нормально работало. Однако, когда количество моделей превышало 20, элементы после 20 не проверялись.

Как может нормально работать флажок списка, даже если количество моделей велико?

введите описание изображения здесь

Прямоугольник {id: infoTable width: parent.width - 20 height: 295 anchors.horizontalCenter: parent.horizontalCenter

Rectangle {
    id: header
    width: parent.width
    height: 31

    anchors{
        top: parent.top
        topMargin: 5
        horizontalCenter: parent.horizontalCenter
    }
    Row {
        height: parent.height
        anchors.left: parent.left

        Item {
            width: headerModel.get(0).columnWidth
            height: parent.height

            Label {
                text: headerModel.get(0).name
                font.family: Theme.nanumSquareBold.name
                font.pixelSize: Theme.regularSize
                anchors.fill: parent
                verticalAlignment: Text.AlignVCenter
                horizontalAlignment: Text.AlignHCenter
            }
        }
        Item {
            width: headerModel.get(1).columnWidth
            height: parent.height

            ButtonGroup{
                id : checkboxGroup
                exclusive: false
                checkState: headerCheckbox.checkState
            }
            CheckBox{
                id : headerCheckbox
                anchors.centerIn: parent
                scale: 0.7
                checkState: checkboxGroup.checkState
            }
        }
    }
}
Rectangle {
    width: parent.width
    height: parent.height - 31
    anchors{
        top: header.bottom
        topMargin: 2
        horizontalCenter: parent.horizontalCenter
    }

    ListView {
        id: tableView
        property int itemHeight: 30

        width: parent.width
        height: parent.height
        headerPositioning: ListView.InlineHeader
        boundsMovement:  Flickable.StopAtBounds
        currentIndex: -1
        focus: true
        clip: true
        model : viewModel.myModel

        ListModel {
            id: headerModel
            ListElement { name: "No"; columnWidth: 30 }
            ListElement { name: ""; columnWidth: 35 }
        }
        delegate: Rectangle {
            width: parent.width
            height: tableView.itemHeight

            MouseArea {
                anchors.fill: parent
                acceptedButtons: Qt.RightButton | Qt.LeftButton
                onClicked: {
                    if (mouse.button == Qt.RightButton){
                        tableMouseMenu.popup()
                    }
                }
            }

            Row {
                height: parent.height
                Item {
                    width: headerModel.get(0).columnWidth
                    height: parent.height

                    Label {
                        text: index + 1
                        font.bold: true
                        font.pixelSize: 12
                        anchors.fill: parent
                        verticalAlignment: Text.AlignVCenter
                        horizontalAlignment: Text.AlignHCenter
                    }
                }
                Item {
                    width: headerModel.get(1).columnWidth
                    height: parent.height

                    Item {
                        anchors.fill: parent
                        CheckBox {
                           id : checkbox
                           scale: 0.7
                           anchors.centerIn: parent
                           ButtonGroup.group: checkboxGroup
                           checked: model.check

                           MouseArea {
                               anchors.fill:parent
                               propagateComposedEvents : true
                               onClicked: {
                                   mouse.accepted = false
                                   model.check=!check
                               }
                           }
                           Connections {
                               target : headerCheckbox
                               onClicked : {
                                   if (headerCheckbox.checkState == 2 && !model.check) model.check = true
                                   else if (headerCheckbox.checkState == 0 && model.check) model.check = false
                                   else model.check

                                   console.log(model.check)
                               }
                           }
                       }
                   }
               }
            }
        }
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...