繁体   English   中英

QML TableView鼠标区域不传播单击到选择模型

[英]QML TableView Mouse area does not propagate click to selection model

我有一个包含有MouseArea的委托的TableView 我想将点击传播到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
    }
}

由于您重新定义了项目委托,因此您还应该实现项目选择。 我通常按​​如下方式进行:

onClicked: {
    tableView.selection.clear();
    tableView.selection.select(styleData.row);
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM