我正在为 KDE Plasma 开发 plasmoid,但不知道如何实现滚动标题栏,类似于您在新闻频道屏幕底部看到的标题栏。我想要一行文本,它以固定的速度在彩色框内水平滚动,永远循环,一旦到达终点就无缝地重新开始。我弄清楚了循环转换的基本部分,允许文本移出它的框然后从另一端出来:
Rectangle {
width: myItem.width
height: myItem.height
color: myColor
Text {
width: myItem.width
wrapMode: "NoWrap"
maximumLineCount: 1
color: theme.textColor
text: "Whatever goes here."
SequentialAnimation on x {
running: true
loops: Animation.Infinite
NumberAnimation { from: -myItem.width; to: myItem.width; duration: 1000; easing.type: Easing.InOutQuad }
PauseAnimation { duration: 250 }
}
}
}
但这并没有考虑到文本字符串的长度,以便将开始/结束位置和持续时间调整为其实际宽度。它还需要将文本完全移出边界然后再移回,将框留空一帧......我想知道是否有办法让它无缝连接。当我调整 plasmoid 大小并调整动画范围时,它也不会注意到,只考虑在开始时检测到的比例。您如何建议重做该定义以解决比例问题并在任何框大小和文本长度下获得一致的结果?