Plotlayout

Experimental high level layout for dashboards. Do not rely on this.

Example:

from flexx import app, ui, event

class Example(ui.Widget):
    def init(self):
        self.layout = ui.PlotLayout()
        self.slider1 = ui.Slider(min=1, max=2, value=1)
        self.slider2 = ui.Slider(min=3, max=10, value=3)
        self.progress = ui.ProgressBar(max=100, value=0)
        self.layout.add_tools('Edit plot',
                            ui.Label(text='exponent'), self.slider1,
                            ui.Label(text='numel'), self.slider2,
                            )
        self.layout.add_tools('Plot info', ui.Label(text='Maximum'), self.progress)

    class JS:

        @event.connect('slider1.value', 'slider2.value')
        def __update_plot(self, *events):
            e, n = self.slider1.value, self.slider2.value
            xx = range(n+1)
            self.layout._plot.xdata = xx
            self.layout._plot.ydata = [x**e for x in xx]

        @event.connect('layout._plot.ydata')
        def __update_max(self, *events):
            yy = events[-1].new_value
            if yy:
                self.progress.value = max(yy)
open in new tab


class flexx.ui.PlotLayout(*init_args, **kwargs)

Inherits from: Layout

Experimental high-level layout for a plot with widgets on the side.

add_tools(name, *args)

Add a set of widgets and collect them in a “tool” GroupWidget by the given name.