作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以在下面写几行并让它工作:
states: State {
name: "active"; when:myitem.activeFocus;
PropertyChanges { target: myitem; z:1000; scale: 1.2 }
}
transitions: Transition {
NumberAnimation { properties: scale; duration: 1000 }
}
但在这些行中我无法给出比例属性的具体来源!
我找到了比例元素
transform: Scale { origin.x: 25; origin.y: 25; xScale: 3}
我如何将它注入(inject)到上面的状态属性中,因为我想使用状态的“when”属性,
我希望缩放在“何时”条件下运行。
或者是否有任何其他方法可以在指定原点的情况下进行缩放?
谢谢你的想法。
最佳答案
您应该为 Scale
元素设置一个 id
。然后您可以在“事件”状态下更改其属性。
这里是一个最小的工作示例:
import QtQuick 1.0
Item {
height: 200; width: 500
Rectangle {
id: myitem
height: 10; width: 100
anchors.centerIn: parent
color: "blue"
transform: Scale { id: scaleTransform; origin.x: 25; origin.y: 25 }
states: State {
name: "active"; when: mouseArea.pressed
PropertyChanges { target: scaleTransform; xScale: 3 }
}
transitions: Transition {
NumberAnimation { property: "xScale"; duration: 1000 }
}
}
MouseArea {
id: mouseArea
anchors.fill: parent
}
}
另一种没有状态的可能性是:
import QtQuick 1.0
Item {
height: 200; width: 500
Rectangle {
id: myitem
height: 10; width: 100
anchors.centerIn: parent
color: "blue"
transform: Scale {
id: scaleTransform
origin.x: 25; origin.y: 25
xScale: mouseArea.pressed ? 3 : 1 // <-
Behavior on xScale { // for animation
NumberAnimation { duration: 1000 }
}
}
}
MouseArea {
id: mouseArea
anchors.fill: parent
}
}
xScale
在按下鼠标时设置为 3,否则设置为 1(如果您不知道“三元运算”,请查看 here)。
关于qml - StateELement 中的比例元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129100/
我可以在下面写几行并让它工作: states: State { name: "active"; when:myitem.activeFocus;
我是一名优秀的程序员,十分优秀!