Короче пишу плеер изучаю qt c qml.
qml все хвалят за красоту и чистоту, и он дейтвительно классный и гораздо удобнее и проще html, я теперь щитаю xml безобразие из веба надо выкидывать и сделать что то подобное для страниц но уже естественно совместимое с жс апи.
У этой хрени все свойства (если они не прописаны константой) как гетеры по сути динамические. И вот блин в моей реализации таймлайн с окном растягивается и ползунок естественно тоже должен пересчитывать положение на этом таймлайне, как это решено на qml (чтоб не тянуть кота за яйца):
Rectangle {
id: timeLine
y: 85; z: 2
height: 20
color: "transparent"
border.width: 1
border.color: "#6e6e6e"
anchors.right: parent.right
anchors.rightMargin: 5
anchors.left: parent.left
anchors.leftMargin: 115
Rectangle {
id: timeSlider
x: /* 0 - было */ (timeLine.width - timeSlider.width) * window.progress
y: -1
width : 33
height: 22
radius: 3
color : window.reverseColor
border.color: "#737373"
border.width: 1
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
acceptedButtons: Qt.LeftButton
drag {
target: timeSlider
axis: Drag.XAxis
minimumX: 0
maximumX: timeLine.width - timeSlider.width
onActiveChanged: {
if(drag.active) { //
// Dragging started
} else {
// Dragging finished
window.progress = timeSlider.x / (timeLine.width - timeSlider.width);
}
}
}
}
}
}
слайдер по оси икс динамически получается из длинны активной зоны таймлайна полученой из ширины таймлайна минус ширина слайдера умножить на некое процентное число получаемое из ... положения слайдера по оси икс разделить на активную зону таймлайна. Это жесть но это работает, но блин это жесть.
Ползунок так то еще должен при проигрывании двигаться, это надо будет время делить на длинну трека и записывать в переменную прогресс которая будет двигать ползунок и в принципе это все облегчает, но блин мне не нравится.
Просто потому что кто то завтра в этих апи что нибудь наменяет и все перестанет работать, а как по другому сделать здесь я не знаю, и плюс непонятно еще как будет двигающийся ползунок одновременно с размером окна сторить что то в эту злополучную переменную на которой все держится.