Обработчик изменения значения spinBox
Имеется главное окно на котором расположены LineEdit и кнопки: одна отправляет по uart данные веденные в lineEdit, другая отправляет команду на их применение, третья вызывает виджет на котором расположен spinBox, который принимает значение установленное в lineEdit главного окна. Это уже реализовано.
Главное окно по своей сути принимает данные от пользователя и передает их в в девайс собранный на stm32. Второе окно нужно для реализации непрерывной отправки данных (без кнопки "применить"). Пользователь изменил данные в spinBox, - это привело к событию и обработчик события определил в какую сторону произошло изменение, далее следует отправка: соответствующей команды и разницы значений spinBox до и после события. На этом этапе произошел затык. Очень рассчитываю на вашу помощь. B QT - новичек. Пишу свое первое приложение.
Вопрос: Возможно ли в среде QT реализовать обработчик spinBox , в котором определялось изменение введеного значения, т. е. значение стало больше или меньше?
При этом нужно определить разницу между значением которое было до изменения и уже измененным.
Ответы (1 шт):
В классе окна заведите значение предыдущее значение в QSpinBox (_prev):
class Window :... {
Window() {
_prev = ui->spinBox->value();
connect(ui->spinBox, &QSpinBox::valueChanged,
this, &Window::spinValueChanged);
}
private slots:
void spinValueChanged(int current) {
// Вычисляем разницу
int _d = _prev - current;
// Проверяем - стало больше, меньше и так далее
}
private:
int _prev;
}