embedded_qtconsole.py
46 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
Thomas Kluyver
|
r13991 | from __future__ import print_function | ||
MinRK
|
r10305 | import os | ||
Martin Spacek
|
r11360 | from IPython.qt.console.rich_ipython_widget import RichIPythonWidget | ||
from IPython.qt.inprocess import QtInProcessKernelManager | ||||
MinRK
|
r10305 | from IPython.lib import guisupport | ||
def print_process_id(): | ||||
Thomas Kluyver
|
r13991 | print('Process ID is:', os.getpid()) | ||
MinRK
|
r10305 | |||
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 | ||||
MinRK
|
r10333 | kernel_manager = QtInProcessKernelManager() | ||
MinRK
|
r10305 | kernel_manager.start_kernel() | ||
kernel = kernel_manager.kernel | ||||
kernel.gui = 'qt4' | ||||
kernel.shell.push({'foo': 43, 'print_process_id': print_process_id}) | ||||
MinRK
|
r10333 | kernel_client = kernel_manager.client() | ||
MinRK
|
r10305 | 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() | ||||