如何反转 PyQt5 中的旋转框选择?
How to reverse spinbox selection in PyQt5?
我在 PyQt5 中有一个旋转框,如下所示。我怎样才能使选择逆转?即如果我单击向下箭头,值会上升,反之亦然。
一个可能的解决方案是覆盖 stepBy()
and 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_())
我在 PyQt5 中有一个旋转框,如下所示。我怎样才能使选择逆转?即如果我单击向下箭头,值会上升,反之亦然。
一个可能的解决方案是覆盖 stepBy()
and 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_())