The following QML code is an example of a functional 2D knob in Qt5 Beta1. It
no longer works in Qt5 Beta2, using latest successful build from November 12.
I am on Mac OS 10.7.4 (Lion).
Perhaps something has changed and I need to recode this example knob; if so,
please advise and possibly add some information in the upcoming Qt5 Beta2
release notes if needed. Perhaps this a potential bug in Qt5 Beta2.
Additional info:
To move the knob, I use a 2-finger up-and-down- swipe on the trackpad, or I
click-and-drag a mouse up-and-down on the knob. This causes the knob to rotate
clockwise/counterclockwise. I tested this using qmlscene.)
Moving the knob result in some deprecated messages from qmlscene in Qt5 Beta1.
2012-11-12 21:52:52.063 qmlscene[23502:b03] -_continuousScroll is deprecated
for NSScrollWheel. Please use -hasPreciseScrollingDeltas.
2012-11-12 21:52:52.063 qmlscene[23502:b03] -deviceDeltaX is deprecated for
NSScrollWheel. Please use -scrollingDeltaX.
2012-11-12 21:52:52.064 qmlscene[23502:b03] -deviceDeltaY is deprecated for
NSScrollWheel. Please use -scrollingDeltaY.
In Qt5 Beta2, these messages no longer occur, and of course, the knob doesn't
move either. Maybe this is a clue to the problem?
Here is the source qml:
Knob.qml (to test, you would need to provide your own 39x39 pixel knob image
in a file named knob.png)
--------------
import QtQuick 2.0
Image {
id: knob
property real minimumvalue: 0
property real maximumvalue: 99
property real minimumrotation: 0
property real maximumrotation: 305
property real value: 0
width: 39
height: 39
smooth: true
Image {
id: knobImage
anchors.fill: parent
source: "knob.png"
rotation: knob.minimumrotation + knob.value / knob.maximumvalue *
knob.maximumrotation
smooth: true
}
MouseArea {
property int previousY: 0
anchors.fill: knobImage
onPressed: previousY = mouse.y
onPositionChanged: {
var delta = (previousY - mouse.y) * 1.00
if (knob.value + delta > knob.maximumvalue) {
knob.value = knob.maximumvalue
}
else if (knob.value + delta < knob.minimumvalue) {
knob.value = knob.minimumvalue
}
else {
knob.value += delta
previousY = mouse.y
}
}
}
}
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development