Как отменить выбор счетчика в PyQt5? - PullRequest
1 голос
/ 09 июля 2020

У меня есть счетчик в PyQt5, как показано ниже. Как сделать выбор наоборот? т.е. если я нажму стрелку вниз, значение возрастет, наоборот.

счетчик

1 Ответ

1 голос
/ 09 июля 2020

Возможное решение - переопределить методы stepBy() и stepEnabled():

import sys
from PyQt5 import QtWidgets


class ReverseSpinBox(QtWidgets.QSpinBox):
    def stepEnabled(self):
        if self.wrapping() or self.isReadOnly():
            return super().stepEnabled()
        ret = QtWidgets.QAbstractSpinBox.StepNone
        if self.value() > self.minimum():
            ret |= QtWidgets.QAbstractSpinBox.StepUpEnabled
        if self.value() < self.maximum():
            ret |= QtWidgets.QAbstractSpinBox.StepDownEnabled
        return ret

    def stepBy(self, steps):
        return super().stepBy(-steps)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = ReverseSpinBox()
    w.resize(320, 20)
    w.show()
    sys.exit(app.exec_())
...