相关疑难解决方法(0)

在PyQt应用程序中嵌入IPython Qt控制台

我想在我正在研究的PyQt应用程序中嵌入一个IPython qt控制台小部件.下面提供的代码(并改编自/sf/answers/685754401/)适用于IPython v0.12.但是,这在IPython v0.13中崩溃self.heartbeat.start()RuntimeError: threads can only be started once.注释掉这一行会显示小部件,但不会响应用户输入.

有谁知道如何实现IPython v0.13的等效功能?

"""
Adapted from
https://stackoverflow.com/a/9796491/1332492
"""
import os
import atexit

from IPython.zmq.ipkernel import IPKernelApp
from IPython.lib.kernel import find_connection_file
from IPython.frontend.qt.kernelmanager import QtKernelManager
from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget
from IPython.config.application import catch_config_error
from PyQt4 import QtCore


class IPythonLocalKernelApp(IPKernelApp):
    DEFAULT_INSTANCE_ARGS = ['']

    @catch_config_error
    def initialize(self, argv=None):
        super(IPythonLocalKernelApp, self).initialize(argv)
        self.kernel.eventloop = self.loop_qt4_nonblocking

    def loop_qt4_nonblocking(self, kernel):
        """Non-blocking version of the ipython qt4 kernel loop"""
        kernel.timer = QtCore.QTimer()
        kernel.timer.timeout.connect(kernel.do_one_iteration) …
Run Code Online (Sandbox Code Playgroud)

python qt ipython pyqt4

31
推荐指数
3
解决办法
1万
查看次数

标签 统计

ipython ×1

pyqt4 ×1

python ×1

qt ×1