单击TableViewColumn时如何发出信号?

时间:2015-11-18 05:13:20

标签: treeview qml tableview qt5 qtquick2

我想在MouseArea添加Button / TableViewColumn来执行特定任务。但是,如果我添加上述类型之一,它会覆盖" click" TableViewColumn的事件,以便我丢失行选择。

这是一个示例代码。当我在最后一列的区域中单击它时,该行不会切换:

TreeView { 
    clip: true id: mapsTreeView 
    objectName: "mapsTreeView" 
    model: theModel

    TableViewColumn {
        width: 100
        role: "name_role"
        title: "Map"
    }
    TableViewColumn {
        width: 50
        role: "description_role"
    }
    TableViewColumn {
        id: imageColumn
        width: 20
        role: "image_role"
        delegate: Item {
            MouseArea {
                anchors.fill: parent
                onClicked: {
                    mapsTreeView.sigChangeState()
                }
            }
            Image {
                anchors.fill: parent
                width: 5
                source: "icon" + styleData.value + ".png"
            }
        }

    }
    signal sigChangeState()
}

1 个答案:

答案 0 :(得分:2)

也许有更好的解决方案,但这对我有用:

MouseArea {
   anchors.fill: parent

     onContainsPressChanged: {
        if(containsPress)
        {
            console.log("PRESSED")
        }
     }

     onPressed: {
        mouse.accepted = false
     }
}