Qt将滑块连接到双打箱

时间:2014-07-02 23:50:17

标签: c++ qt slider qspinbox

这是我用来将我的滑块的int转换为double的代码。

void simMotionControl::on_horizontalSlider_speed_valueChanged(int value)
{
    value = double (value/100); //i set the range of the slider from 0 to 10000
    ui->doubleSpinBox_speed->setValue(value);
}

当我将滑块连接到我的双旋转框时,它只更改每个整数的数字我怎样才能让我的滑块将我的双旋转框更改为两位小数的精度?此外,我还想将旋转框连接回我的滑块,所以如果我改变旋转框中的值,滑块将会改变。谢谢!!

1 个答案:

答案 0 :(得分:1)

您正在划分两个整数,这些整数总是会产生一个整数值。您应将value除以100.0,即十进制:

void simMotionControl::on_horizontalSlider_speed_valueChanged(int value)
{
    double val = value/100.0; //i set the range of the slider from 0 to 10000
    ui->doubleSpinBox_speed->setValue(val);
}

也可以在分割前将值转换为加倍:

double val = (double)value/100;

更改纺纱箱时更新滑块的值,您可以:

void simMotionControl::on_doubleSpinBox_speed_valueChanged(double arg1)
{
    ui->horizontalSlider_speed->setValue(arg1*100);
}