Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a7c0ea7

Browse files
authored
Merge pull request #8185 from anntzer/qt-event-loop
Implement blocking Qt event loop.
2 parents 405e595 + 872675c commit a7c0ea7

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

lib/matplotlib/backends/backend_qt5.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -434,16 +434,17 @@ def flush_events(self):
434434
global qApp
435435
qApp.processEvents()
436436

437-
def start_event_loop(self, timeout):
438-
FigureCanvasBase.start_event_loop_default(self, timeout)
439-
440-
start_event_loop.__doc__ = \
441-
FigureCanvasBase.start_event_loop_default.__doc__
442-
443-
def stop_event_loop(self):
444-
FigureCanvasBase.stop_event_loop_default(self)
445-
446-
stop_event_loop.__doc__ = FigureCanvasBase.stop_event_loop_default.__doc__
437+
def start_event_loop(self, timeout=0):
438+
if hasattr(self, "_event_loop") and self._event_loop.isRunning():
439+
raise RuntimeError("Event loop already running")
440+
self._event_loop = event_loop = QtCore.QEventLoop()
441+
if timeout:
442+
timer = QtCore.QTimer.singleShot(timeout * 1000, event_loop.quit)
443+
event_loop.exec_()
444+
445+
def stop_event_loop(self, event=None):
446+
if hasattr(self, "_event_loop"):
447+
self._event_loop.quit()
447448

448449

449450
class MainWindow(QtWidgets.QMainWindow):

0 commit comments

Comments
 (0)