Сигнал valueChanged()
действительно предназначен для активного срабатывания при его изменении. Если вы хотите, чтобы сигнал сработал по окончании редактирования, есть сигнал специально для этого, который называется editingFinished
: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qabstractspinbox.html#editingFinished
Возможно, вы пропустили его, потому что он является членом суперкласса QAbstractSpinBox. Обратите внимание, что этот сигнал сработает, когда виджет потеряет фокус или пользователь нажмет ввод. Если это не то поведение, которое вам нужно, то единственный оставшийся вариант - использовать QTimer с короткой задержкой, которая перезапускается каждый раз, когда срабатывает valueChanged
, и как только пользователь ждет достаточно долго, тайм-аут фактически обновит ваш ползунок. *
Я также заметил, что вы пытаетесь использовать нецелочисленные значения с QSpinBox, который предназначен для целых чисел. Возможно, вы захотите попробовать QDoubleSpinBox, который разработан для плавающей точности. valueChange()
может вести себя немного лучше, чем ожидание десятичной дроби. Хотя я просто делаю предположение, поскольку я не проверял это: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qdoublespinbox.html