0

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

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);
}

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

4

1 回答 1

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);
}

也可以在除法之前将 value 转换为 double :

double val = (double)value/100;

要在更改旋转框时更新滑块的值,您可以:

void simMotionControl::on_doubleSpinBox_speed_valueChanged(double arg1)
{
    ui->horizontalSlider_speed->setValue(arg1*100);
}
于 2014-07-03T04:06:54.180 回答