07
Сен
2018

PyQt5 Шаг изменения значения слайдера кликом

Нужно изменить шаг перемещения слайдера кликом.

Если зажимать ползунок слайдера и тащить в стороны, то значение слайдера будет изменяться с шагом 1, а вот если кликать левее или правее ползунка, то шаг 10 пунктов.

Хочется, чтобы кликом левее или правее ползунка значение изменялось на 1-2 пункта, чтобы можно было выставить точное значение. setTickInterval(1) и setSingleStep(1) - не помогают.

Пример кода:

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider, QVBoxLayout, QApplication )
from PyQt5 import QtGui

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def keyPressEvent(self, a0: QtGui.QKeyEvent):
        print('pressed')


    def initUI(self):
        lcd = QLCDNumber(self)
        lcd.display(40)
        sld = QSlider(Qt.Horizontal, self)
        sld.setValue(40)

        sld.setTickInterval(1)
        sld.setRange(15,40)
        sld.setFocusPolicy(Qt.StrongFocus)
        sld.setTickPosition(QSlider.TicksBothSides)
        sld.setSingleStep(1)

        vbox = QVBoxLayout()
        vbox.addWidget(lcd)
        vbox.addWidget(sld)
        self.setLayout(vbox)
        sld.valueChanged.connect(lcd.display)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Signal & slot')
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Источник: https://ru.stackoverflow.com/questions/878568/pyqt5-%D0%A8%D0%B0%D0%B3-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D1%81%D0%BB%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-%D0%BA%D0%BB%D0%B8%D0%BA%D0%BE%D0%BC

Тебе может это понравится...

Добавить комментарий