QML如何使用鼠标悬停与styleData.selected一起使用

时间:2016-04-17 13:56:06

标签: qml

我试图在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

0 个答案:

没有答案