Qt将滑块连接到双收件箱

Qt connecting a slider to a doublespinbox

本文关键字:收件箱 连接 Qt      更新时间:2023-10-16

这是我用来将滑动块的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);
}

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

两个整数相除,结果总是一个整数值。您应该将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);
}