Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

DOC: Add an example showing off the embedded Qt console.

  • Loading branch information...
commit 20b2162f9320ff66abd3acb1b5beb8784cc98a58 1 parent 346e7ab
@epatters authored
Showing with 41 additions and 0 deletions.
  1. +41 −0 docs/examples/frontend/embedded_qtconsole.py
View
41 docs/examples/frontend/embedded_qtconsole.py
@@ -0,0 +1,41 @@
+from IPython.embedded.ipkernel import EmbeddedKernel
+from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget
+from IPython.frontend.qt.embedded_kernelmanager import QtEmbeddedKernelManager
+from IPython.lib import guisupport
+
+
+def main():
+ app = guisupport.get_app_qt4()
+
+ # Create a kernel and populate the namespace.
+ kernel = EmbeddedKernel()
+ kernel.shell.push({'x': 0, 'y': 1, 'z': 2})
+
+ # Create a kernel manager for the frontend and register it with the kernel.
+ km = QtEmbeddedKernelManager(kernel=kernel)
+ km.start_channels()
+ kernel.frontends.append(km)
+
+ # Create the Qt console frontend.
+ control = RichIPythonWidget()
+ control.exit_requested.connect(app.quit)
+ control.kernel_manager = km
+ control.show()
+
+ # Execute some code directly. Note where the output appears.
+ kernel.shell.run_cell('print "x=%r, y=%r, z=%r" % (x,y,z)')
+
+ # Execute some code through the frontend (once the event loop is
+ # running). Again, note where the output appears.
+ do_later(control.execute, '%who')
+
+ guisupport.start_event_loop_qt4(app)
+
+
+def do_later(func, *args, **kwds):
+ from IPython.external.qt import QtCore
+ QtCore.QTimer.singleShot(0, lambda: func(*args, **kwds))
+
+
+if __name__ == '__main__':
+ main()
Please sign in to comment.
Something went wrong with that request. Please try again.