Qt, соединяющий ползунок с двойной спинкой

это код, который я использую для преобразования 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);
}

Когда я подключаю свой ползунок к моему двойному центрифугу, он меняет свой номер только для каждого целого числа. Как я могу сделать так, чтобы мой слайдер изменил мой двойной центрифугой с точностью до двух десятичных знаков? Кроме того, я хочу подключить спин-бокс обратно к ползунку, поэтому, если я изменю значение в спин-бокс, слайдер изменится. благодарю вас!!

0

Решение

Вы делите два целых числа, что всегда приводит к целочисленному значению. Вы должны разделить 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);
}
1

Другие решения


По вопросам рекламы [email protected]