2017-11-20 8 views
0

enter image description hereはどのように他の代表者

これは、シアンの長方形は、単一のデリゲートされた状態でQMLのListViewコントロールであるとリストビューデリゲートの子をクリップしないように。私はそれらのサークルをホバリングして拡大したい。問題はそれが下の代議員によって切り取られているということです - それは完全に予想されますが、どのようにこの動作を克服できますか?

はここで例のコードです:

import QtQuick 2.7 
import QtQuick.Controls 1.4 

ApplicationWindow { 
    id: rootWindow 

    visible: true 
    width: 640 
    height: 480 
    color: "white" 

    ListView { 
     anchors.fill: parent 
     model: 15 
     spacing: 5 
     delegate: Rectangle { 
      width: parent.width 
      height: 30 
      color: "cyan" 
      border.width: 1 
      border.color: "black" 
      clip: false 

      Rectangle { 
       property real k: mouseArea.containsMouse ? 5 : 1 
       anchors.centerIn: parent 
       height: parent.height * 0.5 * k 
       width: height 
       radius: width/2 
       color: "yellow" 
       border.width: 1 
       border.color: "black" 

       MouseArea { 
        id: mouseArea 
        anchors.fill: parent 
        hoverEnabled: true 
       } 

       Behavior on k { PropertyAnimation { } } 
      } 

      // layer.enabled: true // why this clips childs ??? 
     } 
    } 
} 

追加質問:デリゲートのためlayer.enabledなぜそれが子供のクリップを開始しますか?このプロパティでクリッピングを削除する方法はすべてtrueに設定されていますか?

+0

'Rectangle'コンポーネントの' clip:false'は機能しますか? – DJMcMayhem

+0

@DJMcMayhemはい、それは働いています(layer.enabled:trueを除く)。デリゲートのAFAIKでは 'clip'はデフォルトでは無効になっていますので、この行は実際には冗長です。 – rsht

+0

その他のご質問は、最初のものに関連していないので、別の質問をしてください。 – derM

答えて

2

デリゲートがホバリングされたときに、z値を上げるだけで、ホバリングされたデリゲートが残りの部分の上にレンダリングされます。

import QtQuick 2.7 
import QtQuick.Controls 1.4 

ApplicationWindow { 
    id: rootWindow 

    visible: true 
    width: 640 
    height: 480 
    color: "white" 

    ListView { 
     anchors.fill: parent 
     model: 15 
     spacing: 5 
     delegate: Rectangle { 
      width: parent.width 
      height: 30 
      color: "cyan" 
      border.width: 1 
      border.color: "black" 
      clip: false 

//*********v see this line!    
      z: mouseArea.containsMouse ? 2 : 1 

      Rectangle { 
       property real k: mouseArea.containsMouse ? 5 : 1 
       anchors.centerIn: parent 
       height: parent.height * 0.5 * k 
       width: height 
       radius: width/2 
       color: "yellow" 
       border.width: 1 
       border.color: "black" 

       MouseArea { 
        id: mouseArea 
        anchors.fill: parent 
        hoverEnabled: true 
       } 

       Behavior on k { PropertyAnimation { } } 
      } 
     } 
    } 
} 
+0

私はこのアプローチを試みたと思った。ありがとうございました! – rsht

+0

デリゲートのルートではなく、黄色の円自体の 'z'値を上げようとしたかもしれません – derM

関連する問題