это код, который я использую для преобразования 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);
}
Также возможно привести значение удвоить до деления:
double val = (double)value/100;
Для обновления значения ползунка при смене spinbox у вас может быть:
void simMotionControl::on_doubleSpinBox_speed_valueChanged(double arg1)
{
ui->horizontalSlider_speed->setValue(arg1*100);
}