#qml #qt5 #kde #kde-plasma #plasmoid
Вопрос:
Я работаю над плазмоидом для плазмы KDE и не могу понять, как реализовать полосу прокрутки заголовка, аналогичную тем, которые вы видите внизу экрана на новостных каналах. Я хочу иметь строку текста, которая горизонтально прокручивается внутри цветного прямоугольника с фиксированной скоростью, зацикливаясь навсегда и плавно начиная сначала, как только она достигнет конца. Я разобрался в основной части циклического перехода, позволяя тексту выходить за пределы своего поля, а затем выходить с другого конца:
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 }
}
}
}
Но это не учитывает длину текстовой строки, чтобы настроить начальную / конечную позицию и длительность до ее реальной ширины. Это также требует перемещения текста полностью за пределы, а затем обратно, оставляя поле пустым для одного кадра… Интересно, есть ли способ сделать это соединение плавным. Он также не замечает, когда я изменяю размер плазмоида и адаптирую диапазон анимации, учитывается только масштаб, обнаруженный в начале. Как вы предлагаете переделать это определение, чтобы обойти проблемы с масштабированием и получить согласованные результаты при любом размере поля и длине текста?
Комментарии:
1. Достигнут некоторый ограниченный прогресс: я, по-видимому, могу извлечь реальную ширину строки с помощью TextMetrics и использовать ее в анимации прокрутки. Апплет по-прежнему не настраивается при изменении размера, и это не помогает плавно выполнять текстовый цикл без промежутка между ними.