我有一个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