1
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2026-03-08 01:37:52 +01:00

feat(jupyter_console): plugin added for QtDesigner

This commit is contained in:
2024-06-25 21:16:57 +02:00
parent 2c816345b5
commit 6623aa83df
4 changed files with 81 additions and 14 deletions

View File

@@ -2,16 +2,16 @@ from bec_ipython_client.main import BECIPythonClient
from qtconsole.inprocess import QtInProcessKernelManager
from qtconsole.manager import QtKernelManager
from qtconsole.rich_jupyter_widget import RichJupyterWidget
from qtpy.QtWidgets import QApplication, QMainWindow
from qtpy.QtWidgets import QApplication
class BECJupyterConsole(RichJupyterWidget): # pragma: no cover:
def __init__(self, inprocess: bool = False):
super().__init__()
def __init__(self, parent=None, inprocess=True):
super().__init__(parent=parent)
self.inprocess = None
self.inprocess = inprocess
self.kernel_manager, self.kernel_client = self._init_kernel(inprocess=inprocess)
self.kernel_manager, self.kernel_client = self._init_kernel(inprocess=self.inprocess)
self.set_default_style("linux")
self._init_bec()
@@ -61,12 +61,10 @@ class BECJupyterConsole(RichJupyterWidget): # pragma: no cover:
self.kernel_manager.shutdown_kernel()
if __name__ == "__main__": # pragma: no cover
import sys
app = QApplication(sys.argv)
win = QMainWindow()
win.setCentralWidget(BECJupyterConsole(True))
win.show()
sys.exit(app.exec_())
# if __name__ == "__main__": # pragma: no cover
# import sys
#
# app = QApplication(sys.argv)
# win = BECJupyterConsole(inprocess=True)
# win.show()
# sys.exit(app.exec_())

View File

@@ -0,0 +1,3 @@
{
"files": ["jupyter_console.py"]
}

View File

@@ -0,0 +1,51 @@
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
from qtpy.QtGui import QIcon
from bec_widgets.widgets.jupyter_console.jupyter_console import BECJupyterConsole
DOM_XML = """
<ui language='c++'>
<widget class='BECJupyterConsole' name='bec_jupyter'>
</widget>
</ui>
"""
class BECJupyterConsolePlugin(QDesignerCustomWidgetInterface): # pragma: no cover
def __init__(self):
super().__init__()
self._form_editor = None
def createWidget(self, parent):
t = BECJupyterConsole(parent)
return t
def domXml(self):
return DOM_XML
def group(self):
return ""
def icon(self):
return QIcon()
def includeFile(self):
return "bec_jupyter"
def initialize(self, form_editor):
self._form_editor = form_editor
def isContainer(self):
return False
def isInitialized(self):
return self._form_editor is not None
def name(self):
return "BECJupyterConsole"
def toolTip(self):
return "BECJupyterConsole widget"
def whatsThis(self):
return self.toolTip()

View File

@@ -0,0 +1,15 @@
def main(): # pragma: no cover
from qtpy import PYSIDE6
if not PYSIDE6:
print("PYSIDE6 is not available in the environment. Cannot patch designer.")
return
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
from bec_widgets.widgets.jupyter_console.jupyter_console_plugin import BECJupyterConsolePlugin
QPyDesignerCustomWidgetCollection.addCustomWidget(BECJupyterConsolePlugin())
if __name__ == "__main__": # pragma: no cover
main()