我试图在TableView中为行构建一个简单的委托。 我希望它显示一个边框以防鼠标悬停,并在选择的情况下留下边框。请参阅以下代码:
Component
{
id: rowDelegate
Item
{
height: 40
Rectangle
{
id: rowRectSel
anchors.fill: parent
color: "grey"
radius: 2
opacity: 0.4
border.width: 3;
visible: styleData.selected
}
Rectangle
{
id: rowRect
anchors.fill: parent
color: "grey"
radius: 2
opacity: 0.4
border.width: 1;
visible: !styleData.selected
}
MouseArea
{
id: rowMouseA
hoverEnabled: true
anchors.fill: parent
preventStealing: false
propagateComposedEvents: true
enabled: !styleData.selected
}
states:
[
State
{
name: "hover"
when: rowMouseA.containsMouse
PropertyChanges { target: rowRect; border.width: 2; }
}
]
}
问题是,当MouseArea( rowMouseA )存在时,它不会显示 rowRectSel - 以某种方式阻止要更改的行 styleData.selected < / em>财产。 如果我删除MouseArea或将 enabled 属性设置为false,则选中时会显示 rowRectSel 。