Глядя на перечисление QStyle::StyleHint
, есть интересная константа SH_SpinBox_ClickAutoRepeatThreshold
.Вы можете проверить его текущее значение для вашего окна прокрутки, например так:
qDebug() << ui->doubleSpinBoxExposure->style()->styleHint(QStyle::SH_SpinBox_ClickAutoRepeatThreshold);
Это обычно возвращает 500
, то есть количество миллисекунд, после которых срабатывает автоповтор (т. Е. Если пользователь удерживаетнажмите и удерживайте кнопку вращения up
дольше, чем этот порог, значение поля прокрутки начнет непрерывно увеличиваться.
Чтобы узнать, есть ли у вас проблемы с синхронизацией, попробуйте изменить это значение, используя пользовательский QStyle
класс, подобный этому:
#include <QProxyStyle>
class MyStyle : public QProxyStyle
{
public:
int styleHint(StyleHint stylehint, const QStyleOption *opt, const QWidget *widget, QStyleHintReturn *returnData) const
{
if(stylehint == QStyle::SH_SpinBox_ClickAutoRepeatThreshold)
{
return 2000; //2 seconds threshold
}
return QProxyStyle::styleHint(stylehint, opt, widget, returnData);
}
};
и установка его экземпляра в стиле спин-бокса:
ui->doubleSpinBoxExposure->setStyle(new MyStyle());
Теперь требуется много (две долгих секунды), прежде чем автоповтор получитсработал, и ваша проблема должна исчезнуть, соответственно.