diff --git a/lib/matplotlib/backends/backend_qt4.py b/lib/matplotlib/backends/backend_qt4.py index 538c26a49475..a192d7c82b98 100644 --- a/lib/matplotlib/backends/backend_qt4.py +++ b/lib/matplotlib/backends/backend_qt4.py @@ -76,6 +76,9 @@ def __init__(self, figure): w, h = self.get_width_height() self.resize(w, h) + # Key auto-repeat enabled by default + self._keyautorepeat = True + def wheelEvent(self, event): x = event.x() # flipy so y=0 is bottom of canvas diff --git a/lib/matplotlib/backends/backend_qt5.py b/lib/matplotlib/backends/backend_qt5.py index 1adda350b9bf..d1653f71cb4f 100644 --- a/lib/matplotlib/backends/backend_qt5.py +++ b/lib/matplotlib/backends/backend_qt5.py @@ -172,7 +172,7 @@ def new_figure_manager_given_figure(num, figure): class TimerQT(TimerBase): ''' - Subclass of :class:`backend_bases.TimerBase` that uses Qt4 timer events. + Subclass of :class:`backend_bases.TimerBase` that uses Qt timer events. Attributes: * interval: The time between timer events in milliseconds. Default @@ -242,6 +242,9 @@ def __init__(self, figure): w, h = self.get_width_height() self.resize(w, h) + # Key auto-repeat enabled by default + self._keyautorepeat = True + def enterEvent(self, event): FigureCanvasBase.enter_notify_event(self, guiEvent=event) @@ -322,6 +325,17 @@ def keyReleaseEvent(self, event): if DEBUG: print('key release', key) + @property + def keyAutoRepeat(self): + """ + If True, enable auto-repeat for key events. + """ + return self._keyautorepeat + + @keyAutoRepeat.setter + def keyAutoRepeat(self, val): + self._keyautorepeat = bool(val) + def resizeEvent(self, event): w = event.size().width() h = event.size().height() @@ -344,7 +358,7 @@ def minumumSizeHint(self): return QtCore.QSize(10, 10) def _get_key(self, event): - if event.isAutoRepeat(): + if not self._keyautorepeat and event.isAutoRepeat(): return None event_key = event.key()