Я делаю связь между QSpinbox и QSlider.
QSpinbox имеет диапазон от -10,0 до 10,0, а QSlider имеет диапазон от -100 до 100.
Итак, значение QSlider, деленное на 10, подключается к QSpinbox и наоборот.
Я использую знак "valueChanged()" СИГНАЛА друг другу.
И я хочу набрать «3.5» в QSpinbox, в этом случае, когда я набираю только «3», значение «ValueChanged» QSpinbox меняет значение QSlider, а QSlider делает это снова. Таким образом, QSpinbox потеряет свое внимание.
Я не могу набрать «3.5» одним выстрелом.
"valueChanged()" СИГНАЛ работает слишком усердно :)
Как я могу решить эту проблему?PyQt4: Синхронизация между QSpinbox и QSlider
ответ
Сигнал valueChanged()
действительно предназначен для активного стрельбы по мере его изменения. Если вы хотите, сигнал срабатывает, когда редактирование завершено, есть сигнал, специально для этого называется editingFinished
: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qabstractspinbox.html#editingFinished
Вы можете не заметить, потому что его член суперкласса QAbstractSpinBox. Обратите внимание, что этот сигнал загорается, когда виджет теряет фокус или пользователь попадает в него. Если это не то поведение, в котором вы хотите, то единственным оставшимся вариантом является использование QTimer с небольшой задержкой, которая перезапускается каждый раз valueChanged
, а когда пользователь ждет достаточно долго, тайм-аут фактически обновит ваш слайдер.
Я также заметил, что вы пытаетесь использовать нецелые значения с QSpinBox, который предназначен для ints. Возможно, вы захотите попробовать QDoubleSpinBox, который предназначен для плавающей точности. valueChange()
может вести себя немного лучше, ожидая десятичного. Хотя я просто догадываюсь, так как я не тестировал его: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qdoublespinbox.html
- 1. PyQt4: строки QSpinBox
- 2. Qt модель зрения архитектуры между QSlider и QSpinBox
- 3. PyQt4 Формат QSpinBox
- 4. QSlider stepping?
- 5. Connect Qslider и MatplotlibWidget
- 6. Разница между qt и PyQt4
- 7. Как подключить QSlider к QDoubleSpinBox
- 8. PyQt4 Signal и QObject.Emit()
- 9. PyQt4 Сигнализация между классами
- 10. синхронизация между первенствует и SQL
- 11. Синхронизация между Listbox и Listview
- 12. Синхронизация между mysql и IndexedDB
- 13. Синхронизация между Parse и localDataStore
- 14. Синхронизация между IntentServices и AsyncTasks
- 15. Синхронизация между DATETIME и TIMESTAMP
- 16. Синхронизация между perforce и git
- 17. Синхронизация и статическая синхронизация
- 18. PyQt4: Разница между QWidget и QMainWindow
- 19. PyQt4: Разница между QtCore.QCoreApplication.instance(). Quit и self.close?
- 20. Вращения с QQuaternion и QSlider
- 21. QSlider, QTimer и valueChanged use
- 22. Qt inherit QSpinBox и QPushButton
- 23. QSlider - как цвет пространство
- 24. PyQT4 - связь между 2 окнами
- 25. PyQt4 соединяет сигналы между классами
- 26. Синхронизация между службами windows
- 27. Синхронизация между двумя TextViews
- 28. Синхронизация Android между устройствами
- 29. Синхронизация между методами @async
- 30. OpenCL: синхронизация между ядрами
Я изменил «valueChanged» на «editFinished». Спасибо! –