這真的不是一個反映,這本身將是非常複雜的實現。
這是一個笨拙的麪包店,基本上你有一個從透明到白色到透明的動畫線性漸變,當它穿過它時應該應用到的對象的alpha值將其遮住。
如果你正在尋找一種方式來做到這一點在Qt中,它絕對不是QtWdigets
,它將是非常低效。這樣做的正確的工具是QML - 這是多麼簡單:
import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.2
import QtGraphicalEffects 1.0
ApplicationWindow {
id: main
width: 200
height: 200
visible: true
color: "black"
Grid {
x: 15
y: 15
id: grid
rows: 3
columns: 3
spacing: 10
Repeater {
model: 9
Rectangle {
radius: 10
width: 50
height: 50
color: "gold"
border.color: "orange"
border.width: 5
}
}
}
LinearGradient {
id: effect
anchors.fill: grid
source: grid
rotation: -90
property real p : pos.mouseX/pos.width
gradient: Gradient {
GradientStop { position: effect.p - 0.05; color: "#00FFFFFF"}
GradientStop { position: effect.p; color: "#FFFFFFFF"}
GradientStop { position: effect.p + 0.05; color: "#00FFFFFF"}
}
}
MouseArea {
id: pos
anchors.fill: grid
hoverEnabled: true
}
}
而結果:
在這個例子中的光會用鼠標位置移動。
你可以畫一個你期望達到什麼樣的圖像嗎? – Googie 2015-04-01 19:57:38
按要求添加 – user3507499 2015-04-01 21:00:58