Opening native figure from Jupyter notebook

Is it possible to launch native Octave figure from Jupyter notebook? I am interested in this functionality over inline plotting to make use of uicontrols.

The idea might be to use Octaves’ uicontrols like ipywidgets?

Regarding using the qt-graphics_toolkit within Jupyter Notebooks, you can check this recent blog post GSoC 2021: How to setup the Octave kernel for Jupyter.

However, to my understanding interactive qt-based uicontrols cannot be “run” in a web browser (there must be something that translates the qt widgets to browser-native ones, like ipywidgets for python). A quick try&error for the (qt, fltk, and gnuplot graphics_toolkit) also make little hope

image

Is there a way to explore commercial development for this functionality? Contacting companies listed on Octave webpage resulted in no replies.

Following the explanations below you’ll be able to run the qt graphics tookit

In order to have the graphics displayed in a separate Qt window, rather than inline, you can use the magic command %plot qt in jupyter(-lab)
image

Unfortunately, most mouse interactions, with uicontrol objects but also with menus, toolbars…, require that the graphics events be executed by the background octave interpreter. In the above example, if I click twice the uicontrol, then I need to call drawnow to execute graphics events and see the effect.

image

… far from ideal :slight_smile:

1 Like