##// END OF EJS Templates
Merge pull request #9706 from takluyver/qt-loop-3...
Min RK -
r22657:eaafe5f0 merge
parent child Browse files
Show More
@@ -1,3 +1,4 b''
1 import sys
1 from IPython.external.qt_for_kernel import QtCore, QtGui
2 from IPython.external.qt_for_kernel import QtCore, QtGui
2
3
3 def inputhook(context):
4 def inputhook(context):
@@ -5,6 +6,19 b' def inputhook(context):'
5 if not app:
6 if not app:
6 return
7 return
7 event_loop = QtCore.QEventLoop(app)
8 event_loop = QtCore.QEventLoop(app)
9
10 if sys.platform == 'win32':
11 # The QSocketNotifier method doesn't appear to work on Windows.
12 # Use polling instead.
13 timer = QtCore.QTimer()
14 timer.timeout.connect(event_loop.quit)
15 while not context.input_is_ready():
16 timer.start(50) # 50 ms
17 event_loop.exec_()
18 timer.stop()
19 else:
20 # On POSIX platforms, we can use a file descriptor to quit the event
21 # loop when there is input ready to read.
8 notifier = QtCore.QSocketNotifier(context.fileno(), QtCore.QSocketNotifier.Read)
22 notifier = QtCore.QSocketNotifier(context.fileno(), QtCore.QSocketNotifier.Read)
9 notifier.setEnabled(True)
23 notifier.setEnabled(True)
10 notifier.activated.connect(event_loop.exit)
24 notifier.activated.connect(event_loop.exit)
General Comments 0
You need to be logged in to leave comments. Login now