在qml中使用光效(亮度)

时间:2015-02-02 16:54:13

标签: qt qml brightness

我试图制作一个从我的图像中出现的光效,每当我点击它时,我尝试了以下内容:

     Image {
             id: image1
             source: "../../blue_dot.png"


     BrightnessContrast {
               id:myBright
               x: image1.width/2
               y: image1.height/2
               visible: false
             }


     MouseArea{
               anchors.fill: parent

               onPressed: {
                 myBright.brightness = 1
                 myBright.visible = true
                          }
             }

         }

但遗憾的是,每当我点击我的图片时都没有出现任何想法,如何使用qml从图像中获得光效?

2 个答案:

答案 0 :(得分:1)

这不是使用GraphicalEffect的方法。看看官方Qt documentation

你必须:

  • 将图片的可见性设置为false,并将效果的可见性设置为true
  • 将图形效果的宽度和高度设置为图像的高度和宽度(anchors.fill: image很好)
  • 将graphicalEffect的source属性设置为您的图片ID
  • OnClicked,调整GraphicalEffect的对比度/亮度属性(默认值:0,0)

像这样:

Image {
    id: image1
    source: "../../blue_dot.png"
    visible: false
}
BrightnessContrast {
    id:myBright
    anchors.fill: image1
    source: image1
}

MouseArea{
    anchors.fill: parent
    onPressed: {
        myBright.brightness==0? myBright.brightness= 0.2:myBright.brightness=0
    }
}

答案 1 :(得分:0)

似乎未设置某些必需属性:

BrightnessContrast {
               id:myBright
               x: image1.width/2
               y: image1.height/2
               visible: false
               // New properties:
               source: image1
               width: 100
               height: 100

             }

宽度和高度我随机选择。你应该用正确的值替换我的值。但更好的方法是使用" anchors.fill:image1"。