##// END OF EJS Templates
DOC: Add an example showing off the embedded Qt console.
epatters -
Show More
@@ -0,0 +1,41 b''
1 from IPython.embedded.ipkernel import EmbeddedKernel
2 from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget
3 from IPython.frontend.qt.embedded_kernelmanager import QtEmbeddedKernelManager
4 from IPython.lib import guisupport
5
6
7 def main():
8 app = guisupport.get_app_qt4()
9
10 # Create a kernel and populate the namespace.
11 kernel = EmbeddedKernel()
12 kernel.shell.push({'x': 0, 'y': 1, 'z': 2})
13
14 # Create a kernel manager for the frontend and register it with the kernel.
15 km = QtEmbeddedKernelManager(kernel=kernel)
16 km.start_channels()
17 kernel.frontends.append(km)
18
19 # Create the Qt console frontend.
20 control = RichIPythonWidget()
21 control.exit_requested.connect(app.quit)
22 control.kernel_manager = km
23 control.show()
24
25 # Execute some code directly. Note where the output appears.
26 kernel.shell.run_cell('print "x=%r, y=%r, z=%r" % (x,y,z)')
27
28 # Execute some code through the frontend (once the event loop is
29 # running). Again, note where the output appears.
30 do_later(control.execute, '%who')
31
32 guisupport.start_event_loop_qt4(app)
33
34
35 def do_later(func, *args, **kwds):
36 from IPython.external.qt import QtCore
37 QtCore.QTimer.singleShot(0, lambda: func(*args, **kwds))
38
39
40 if __name__ == '__main__':
41 main()
General Comments 0
You need to be logged in to leave comments. Login now