python - QDoubleSpinBox 接受点和逗号作为小数分隔符
问题描述
我需要一个可以接受点和逗号作为小数分隔符的旋转框。
我更改了区域设置: self.setLocale(QLocale(QLocale.C))
因此,我的 spinbox 接受一个点作为小数分隔符。按下逗号按钮时,屏幕上也会显示一个逗号,但在编辑后它会消失。
我重新定义了 keyPressEvent。现在,当我使用逗号按钮时,它会模拟点键并调用 QDoubleSpinBox 的原始 keyPressEvent。但是旋转框屏幕上什么也没有发生,我不知道我错过了什么。
有没有人看到问题?
class MyDoubleSpinBox(QDoubleSpinBox):
def __init__(self):
super().__init__()
self.setValue(0.00)
self.setSingleStep(0.01)
self.setMaximum(1000)
def keyPressEvent(self, in_event): # 46 = dot; 44 = comma:
if in_event.key() == 44:
self.keyPressEvent(QKeyEvent(QEvent.KeyPress, 46, Qt.NoModifier, 0, 0, 0))
else:
print(in_event.key()) # it's working (46 even if I press comma)
QDoubleSpinBox.keyPressEvent(self, in_event)