+
+ void keyPressEvent(QKeyEvent *event) override
+ {
+ int newPosition = -1;
+ if (event->key() == Qt::Key_Right) {
+ // slide right 1%
+ newPosition = std::min(maximum(), sliderPosition() + maximum() / 100);
+ } else if (event->key() == Qt::Key_Left) {
+ // slide left 1%
+ newPosition = std::max(0, sliderPosition() - maximum() / 100);
+ }
+
+ if (newPosition != -1) {
+ event->accept();
+
+ if (newPosition != sliderPosition()) {
+ setSliderPosition(newPosition);
+ triggerAction(SliderMove);
+ setRepeatAction(SliderNoAction);
+
+ Q_EMIT sliderMoved(newPosition);
+ }
+ } else {
+ QSlider::keyPressEvent(event);
+ }
+ }