Я просмотрел много сообщений о редактировании сигналов QSpinBoxFinished и valueChanged, но не смог решить свою проблему, т.е.
- Я хочу, чтобы сигнал editFinished испускался, когда пользователь вводит любое значение и нажимает «Ввод». [ГОТОВО]
- Пользователь может изменить значение с помощью стрелок вверх/вниз либо нажатием клавиши, либо нажатием мыши. Это можно сделать с помощью сигнала valueChange, но не с помощью editFinished.
Итак, чтобы достичь обоих, я столкнулся с проблемой. Предположим, я хочу ввести 10000, поэтому valueChanged выдается с 1, 10, 100, 1000, 10000, чего я не хочу, а должен испускать, когда пользователь нажимает ввод после ввода 10000 Таким образом, это делается путем избегания valueChanged и подключения к &QAbstractSpinbox::editingFinished.
connect(ui->spinBox, &QSpinBox::editingFinished,
this, [&]()
{
ui->label->setText(QString::number(ui->spinBox->value()));
});
Но я хочу, чтобы стрелки вверх/вниз тоже работали. поэтому для этого снова требуется valueChanged.
Есть ли какие-либо средства для достижения этого напрямую, вместо добавления моего собственного класса spinbox и переопределения событий для щелчка/нажатия стрелки вверх/вниз.
Любое предложение приветствуется.