私は同じ問題がありました。互換性の問題がありました。 まずPycharm(エディタ)をダウンロードしました。私はこのコードをウィジェットのように使いました。できます。
import sip
sip.setapi(u'QDate', 2)
sip.setapi(u'QDateTime', 2)
sip.setapi(u'QString', 2)
sip.setapi(u'QTextStream', 2)
sip.setapi(u'QTime', 2)
sip.setapi(u'QUrl', 2)
sip.setapi(u'QVariant', 2)
from IPython.lib import guisupport
from qtconsole.rich_jupyter_widget import RichJupyterWidget
from qtconsole.inprocess import QtInProcessKernelManager
class IPythonWidget(RichJupyterWidget):
def __init__(self,customBanner=None,*args,**kwargs):
if not customBanner is None: self.banner=customBanner
super(IPythonWidget, self).__init__(*args,**kwargs)
self.kernel_manager = kernel_manager = QtInProcessKernelManager()
kernel_manager.start_kernel()
kernel_manager.kernel.gui = 'qt4'
self.kernel_client = kernel_client = self._kernel_manager.client()
kernel_client.start_channels()
def stop():
kernel_client.stop_channels()
kernel_manager.shutdown_kernel()
guisupport.get_app_qt4().exit()
self.exit_requested.connect(stop)
def pushVariables(self,variableDict):
""" Given a dictionary containing name/value pairs, push those variables to the IPython console widget """
self.kernel_manager.kernel.shell.push(variableDict)
def clearTerminal(self):
""" Clears the terminal """
self._control.clear()
def printText(self,text):
""" Prints some plain text to the console """
#self._append_plain_text(text)
self.append_stream(text)
def executeCommand(self,command):
""" Execute a command in the frame of the console widget """
# self._execute(command,False)
self.execute(command,False)
これはJupyter(以前のIPythonの)qtconsoleウィジェットで行うことができます。それを行うアプリケーションの例についてSpyderを見てください。 –
こんにちはトーマス。提案していただきありがとうございます。私はこれを見つけて、例を通して部分的に働いた。しかし、私はこれがPySide/PyQtを必要とすると信じています。 PyQtは私たちのための選択肢ではありません(絶対に必要な場合を除きます)。PySideの状態がこの日になっているかどうかはわかりません。 – dmon
qtconsoleをC++で再実装することができないのは、これが私が知る唯一の方法です。それを試してみたいのであれば、PySideで動作するはずです。 –