我有一个 TreeView ,我在其中一列中有一个带有 MouseArea 的图像 . 点击它,焦点(选择,突出显示?)不会移动到字符串,因为 MouseArea 高于 TreeView (据我所知)

这是代码:

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()
    }
}

同样的故事适用于按钮:

TableViewColumn {
            id: imageColumn
            width: 20
            role: "image_role"
            delegate: Button {
                    iconSource: "icon" + styleData.value + ".png"
                    onClicked: mapsTreeView.sigChangeState()
                    }
 }

当我单击按钮时,焦点不会移动到包含按钮的字符串 .

所以问题是,如何使图像/按钮委托,以便通过点击它焦点将移动到包含该对象的字符串,并发出一些信号 .

ListView 中,我所要做的只是以下内容:

onClicked:{
   mapsView.currentIndex=model.index
   mapsState.sigChangeState()
}

TreeView 不允许一个人写 CurrentIndex