def eventFilter(self, *args: Any, **kwargs: Any) -> bool: """Filter MousePressEvent and show num pad.""" sender = args[0] event = args[1] if event.type() == QEvent.MouseButtonPress: if self.isEnabled() and not self.isReadOnly(): numpad = NumPad(self, sender.text()) if numpad.exec_() == QDialog.Accepted: newValue = string_to_float(numpad.outputLineEdit.text()) self.setValue(int(newValue)) return QDoubleSpinBox.eventFilter(self, *args, **kwargs)