首页 > 解决方案 > QML TableView 鼠标区域不会将点击传播到选择模型

问题描述

我有TableView一个委托,其中包含一个MouseArea. 我想将点击传播到 ,TableView以便项目的选择仍然有效。但是,我MouseArea现在无法选择TableView. 我怎样才能改变这个?

TableView {
    id: tableView
    model: testModel
    selectionMode: SelectionMode.SingleSelection

    Component {
        id: testDelegate
        Item {
            id: delegateItem
                Text{
                    id: ctext
                    text: styleData.value
                    color: styleData.textColor
                }
                MouseArea {
                     id: mouseArea
                     acceptedButtons: Qt.LeftButton | Qt.RightButton
                     anchors.fill: parent
                     propagateComposedEvents: true
                      onClicked: {
                        console.log("click");
                        mouse.accepted = false
                      }

                 }


            }


    }
    TableViewColumn {
        role: "TestRole"
        delegate: testDelegate
    }
}

标签: qtqml

解决方案


如果您不介意使用onPressed事件而不是onClicked用户交互,传播事件也将允许在TableView(如果需要,包括ExtendedSelection模式)中进行选择:

MouseArea {
    // ...
    onPressed: {
        mouse.accepted = false
    }
}

推荐阅读