class QSpinBox(QSpinBox):
def __init__(self, parent=None):
super().__init__()
self.setCorrectionMode(QAbstractSpinBox.CorrectToNearestValue)=
def keyPressEvent(self, event):
# 大于最大值时设置为最大值
if event.key()<58 and event.key()>47:
lineEdit = self.lineEdit()
cu_Pos = lineEdit.cursorPosition()
sel_start = lineEdit.selectionStart()
sel_end = lineEdit.selectionEnd()
if sel_start!=-1:
value = str(lineEdit.text())[:sel_start] + str(lineEdit.text())[sel_end:]
cu_Pos = sel_start
else:
value = str(lineEdit.text())
if len(value) == cu_Pos:
value = int(value + chr(event.key()))
else:
value = int(value[:cu_Pos] + chr(event.key()) + value[cu_Pos:])
if value > self.maximum():
self.setValue(self.maximum())
return super().keyPressEvent(event)
pyqt 自定义QSpinBox 超过最大值时设为最大值
最新推荐文章于 2023-12-12 17:25:21 发布