Show More
embedded_qtconsole.py
46 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
|
r10305 | import os | ||
from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget | ||||
from IPython.frontend.qt.inprocess import QtInProcessKernelClient | ||||
from IPython.kernel.inprocess import InProcessKernelManager | ||||
from IPython.lib import guisupport | ||||
def print_process_id(): | ||||
print 'Process ID is:', os.getpid() | ||||
def main(): | ||||
# Print the ID of the main process | ||||
print_process_id() | ||||
app = guisupport.get_app_qt4() | ||||
# Create an in-process kernel | ||||
# >>> print_process_id() | ||||
# will print the same process ID as the main process | ||||
kernel_manager = InProcessKernelManager() | ||||
kernel_manager.start_kernel() | ||||
kernel = kernel_manager.kernel | ||||
kernel.gui = 'qt4' | ||||
kernel.shell.push({'foo': 43, 'print_process_id': print_process_id}) | ||||
kernel_client = QtInProcessKernelClient(kernel=kernel) | ||||
kernel_client.start_channels() | ||||
def stop(): | ||||
kernel_client.stop_channels() | ||||
kernel_manager.shutdown_kernel() | ||||
app.exit() | ||||
control = RichIPythonWidget() | ||||
control.kernel_manager = kernel_manager | ||||
control.kernel_client = kernel_client | ||||
control.exit_requested.connect(stop) | ||||
control.show() | ||||
guisupport.start_event_loop_qt4(app) | ||||
if __name__ == '__main__': | ||||
main() | ||||