TreeView焦点/选择和按钮/鼠标区域委托

时间:2015-11-11 05:03:54

标签: delegates treeview focus qml

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

0 个答案:

没有答案