2016-12-07 6 views
1

私はイメージによってマスクする必要があるリストビューを持っています。 スクロールに応じて幅を小さくする必要があるハイライトコンポーネントを使用しているためです。 このコードで可能ですか?これが間違っている場合は、私にいくつかの方法を提案してください。qmlのリストビューをマスクする方法は?

Item{ 
     id: test 
     x: 0 
     y: 0 
     width: 1920 
     height: 720 


     ListView { 
      id: source_list 
      x: 0 
      y: 0 
      width: 600 
      height: 720 
      spacing: 40 
      model: mediaSongsModel 
      delegate: mediaSongsDelegate 
      focus: true 
      interactive: true 
      highlightFollowsCurrentItem: true 
      highlightMoveDuration: 0 
      highlight: highlightBar 
      snapMode: ListView.SnapOneItem 
      preferredHighlightBegin:260/scaleFactor 
      preferredHighlightEnd: 260/scaleFactor 
      highlightRangeMode : ListView.ApplyRange 

     } 

     layer.enabled: true 
     layer.effect: OpacityMask { 

      maskSource:Item { 
       width: 100 
       height: 500 

       Image{ 
        id :crop 
        x: 0 
        y: 0 
        width: 600 
        height: 720 
        source :"image/bg.png" 

       } 

      } 

     } 

    } 
+0

正確に何をしますか?エラーとは何ですか?あなたの質問を明確にしてください。 – folibis

+0

マスクをリストビューとイメージで追加したい。つまり、画像以外の外側の部分は、リストビューから切り取られなければなりません。 –

答えて

0

すでに行ったような何か:

import QtQuick 2.7 
import QtQuick.Window 2.2 
import QtGraphicalEffects 1.0 

Window { 
    visible: true 
    width: 600 
    height: 600 

    Rectangle { 
     id: rect 
     width: 400 
     height: 400 
     anchors.centerIn: parent 
     color: "black" 
     visible: (img.status == Image.Ready) 
     ListView { 
      anchors.fill: parent 
      model: 30 
      delegate: Text { text: "itemmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm" + index; color: "yellow" } 
     } 
     layer.enabled: true 
     layer.effect: OpacityMask { 
      maskSource: img 
     } 
    } 

    Image { 
     id: img 
     source: "https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Google_%22G%22_Logo.svg/1024px-Google_%22G%22_Logo.svg.png" 
     width: 400 
     height: 400 
     anchors.centerIn: parent 
     visible: false 

    } 


} 

しかし、私はあなたがマウスイベントをマスクすることができるとは思いません。

関連する問題