Den 16-10-2014 17:39, Nuno Santos skrev: > Hi, > > I’m using Slider from QtQuickControls and i’m facing a problem. I initialise > the value with a value saved on settings. However, when the slider is > instantiated, it is triggering onValueChanged with the default min value. The > setting is being correctly saved because I don’t show the slider right away. > Only when the slider is show, this is happening and I see the result of the > change in settings. > > Slider { > width: parent.width > height: 10 > minimumValue: 60 > maximumValue: 180 > stepSize: 1 > updateValueWhileDragging: true > value: settings.trackWidth > onValueChanged: { > console.log("track width value changed: " + value) > settings.trackWidth = value > } > Component.onCompleted: { > console.log("track width on completed: " + settings.trackWidth) > value = settings.trackWidth > } > } > > Console: > > qml: track width value changed: 60 > qml: track width on completed: 60
It's possible there is an elegant solution to this, but I haven't found it so far. What I do in cases like this is to set a boolean property initialised to false and set this to true in onCompleted after you set the value. In onValueChanged, you check if the bool is true before doing anything on the value. Bo. -- Viking Software Qt and C++ developers for hire http://www.vikingsoft.eu _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest