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