Is there any way of knowing the current value repeatedly when a valuechanged() signal is emitted by slider?
-
Create a slot that takes an integer value. In that slot, check if the received number matches the number you're looking for, call the function you want to call. Connect the valueChanged signal to your slot.
Keep in mind that you might not receive the number you are looking for. valueChanged() doesn't get called at every number.
-
actually near the slider i have a speaker image. I want to change speaker image according to slider handle position. Speaker image can be changed by calling set_image(int image_index) slot. So for that at particular position of slider handle position i have to call set_image slot.
The problem here is that the set_image slot is already written and i can't edit it. -
Right. It is wise to check the ranges, rather than the bordering values.
Let's assume the set_image() function doesn't update unless it has to, else get the current index and compare. Assume range is 0-100 and there are four images.
@
void Thingy::updateIconForValueBluntly(int v)
{
set_image(v/25);
}void Thingy::updateIconForValueSmartly(int v)
{
if (v < 10)
set_image(0);
else if (v < 30)
set_image(1);
else if (v < 65)
set_image(2);
else
set_image(3);
}void Thingy::updateIconForValueSomewhatPythonically(int v)
{
static const QVector vec = QVector() << 10 << 30 << 65 << 100;for (int i = 0; i < vec.size(); ++i) { if (v < vec.at(i)) { set_image(i); return; } } set_image(vec.count() - 1);}
@Probably goes without saying, all code is untested.