Widgets gallery =============== :mod:`silx.gui.console` Widgets +++++++++++++++++++++++++++++++ .. currentmodule:: silx.gui.console .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. image:: img/IPythonWidget.png :height: 150px :align: center - :class:`IPythonWidget` is an interactive console widget running a :class`QtInProcessKernelManager`. This allows to push variables to the interactive console, and interact with your application (e.g. adding curves to a plot) * - .. image:: img/IPythonDockWidget.png :height: 150px :align: center - :class:`IPythonDockWidget` is an :class:`IPythonWidget` embedded in a :class:`QDockWidget`. :mod:`silx.gui.data` Widgets ++++++++++++++++++++++++++++ .. currentmodule:: silx.gui.data .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. snapshotqt:: data/img/ArrayTableWidget.png :height: 150px :align: center from silx.gui.data.ArrayTableWidget import ArrayTableWidget import numpy.random table = ArrayTableWidget() table.setArrayData(numpy.random.random((100, 100, 100))) table.resize(500, 300) table.show() - :class:`ArrayTableWidget` is a table widget with browsers designed to display the content of multi-dimensional data arrays. * - .. snapshotqt:: data/img/DataViewer.png :height: 150px :align: center import numpy.random from silx.gui.data.DataViewer import DataViewer viewer = DataViewer() viewer.setData(numpy.random.random((100, 100, 100))) viewer.show() - :class:`DataViewer` is a widget designed to display data using the most adapted view. * - .. image:: data/img/DataViewerFrame.png :height: 150px :align: center - :class:`DataViewerFrame` is a :class:`DataViewer` with a view selector that lets you view the data using any compatible view. * - .. image:: data/img/NumpyAxesSelector.png :height: 50px :align: center - :class:`NumpyAxesSelector` is a widget designed to select a subarray in a n-dimensional array, by fixing the index on some of the dimensions. :mod:`silx.gui.dialog` Widgets ++++++++++++++++++++++++++++++ .. currentmodule:: silx.gui.dialog .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. image:: dialog/img/datafiledialog.png :height: 150px :align: center - :class:`DataFileDialog` is a dialog that allows users to select any datasets or groups from any HDF5-like file. It features a file browser that can also browse the content of HDF5 file as if they were directories. * - .. image:: dialog/img/imagefiledialog_h5.png :height: 150px :align: center - :class:`ImageFileDialog` is a dialog that allows users to select an image from any HDF5-like file. * - .. image:: dialog/img/groupdialog.png :height: 150px :align: center - :class:`GroupDialog` is a dialog that allows users to select a group from one or several specified HDF5-like files. :mod:`silx.gui.fit` Widgets +++++++++++++++++++++++++++ .. currentmodule:: silx.gui.fit .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. image:: fit/img/FitWidget.png :height: 150px :align: center - :class:`FitWidget` is a widget designed to configure and run a fitting process, with constraints on parameters. * - .. image:: fit/img/BackgroundDialog.png :height: 150px :align: center - :class:`BackgroundWidget.BackgroundDialog` is a widget designed to adjust the parameters and preview the results of a *snip* or *strip* background filter. :mod:`silx.gui.hdf5` Widgets ++++++++++++++++++++++++++++ .. currentmodule:: silx.gui.hdf5 .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. image:: hdf5/img/Hdf5TreeView.png :height: 150px :align: center - :class:`Hdf5TreeView` is a tree view desiged to browse an HDF5 file structure. .. _plot-gallery: :mod:`silx.gui.plot` Widgets ++++++++++++++++++++++++++++ .. currentmodule:: silx.gui.plot Plotting widgets: .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. image:: plot/img/PlotWidget.png :height: 150px :align: center - :class:`PlotWidget` is the base Qt widget providing a plot area. Other plot widgets are based on this one and provides the same API. * - .. image:: plot/img/PlotWindow.png :height: 150px :align: center - :class:`PlotWindow` adds a toolbar to :class:`PlotWidget`. The content of this toolbar can be configured from the :class:`PlotWindow` constructor or by hiding its content afterward. * - .. image:: plot/img/Plot1D.png :height: 150px :align: center - :class:`.Plot1D` is a :class:`PlotWindow` configured with tools useful for curves. * - .. image:: plot/img/Plot2D.png :height: 150px :align: center - :class:`.Plot2D` is a :class:`PlotWindow` configured with tools useful for images. * - .. image:: plot/img/ImageView.png :height: 150px :align: center - :class:`ImageView` adds side histograms to a :class:`.Plot2D` widget. * - .. image:: plot/img/StackView.png :height: 150px :align: center - :class:`StackView` is a widget designed to display an image from a stack of images in a :class:`PlotWindow` widget, with a frame browser to navigate in the stack. The profile tool can do a 2D profile on the stack of images. * - .. image:: plot/img/ComplexImageView.png :height: 150px :align: center - :class:`ComplexImageView` is a widget dedicated to visualize a single 2D dataset of complex data. It allows to switch between viewing amplitude, phase, real, imaginary, colored phase with amplitude or log10(amplitude) as brightness. * - .. image:: plot/img/ScatterView.png :height: 150px :align: center - :class:`ScatterView` is a widget dedicated to visualize a scatter plot. * - .. image:: plot/img/CompareImages.png :height: 150px :align: center - :class:`CompareImages` is a widget dedicated to compare 2 images. Additional widgets: .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. image:: plot/img/PositionInfo.png :width: 300px :align: center - :class:`.PlotTools.PositionInfo` is a widget displaying mouse position and information of a :class:`PlotWidget` associated to the mouse position. * - .. snapshotqt:: plot/img/LimitsToolBar.png :width: 300px :align: center from silx.gui.plot import Plot2D from silx.gui.plot.tools.LimitsToolBar import LimitsToolBar plot = Plot2D() toolbar = LimitsToolBar(plot=plot) toolbar.resize(400, 30) plot.show() toolbar.show() app.processEvents() - :class:`.PlotTools.LimitsToolBar` is a QToolBar displaying and controlling the limits of a :class:`PlotWidget`. * - .. snapshotqt:: plot/img/logColorbar.png :height: 150px :align: center from silx.gui.plot import Plot2D from silx.gui.plot.ColorBar import ColorBarWidget from silx.gui.plot.Colors import Colormap import numpy plot = Plot2D() colorbar = ColorBarWidget(plot=plot, legend='Colormap Log scale') colorbar.setColormap(Colormap(name='jet', normalization='log', vmin=1.0, vmax=10e3)) colorbar.show() colorbar.resize(20, 500) - :class:`.ColorBar.ColorBarWidget` display colormap gradient and can be linked with a plot to display the colormap * - .. image:: plot/img/statsWidget.png :height: 150px :align: center - :class:`.statsWidget.StatsWidget` display statistics on plot's items (curve, images...) .. _plot3d-gallery: :mod:`silx.gui.plot3d` Widgets ++++++++++++++++++++++++++++++ .. currentmodule:: silx.gui.plot3d .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. image:: plot3d/img/SceneWindow.png :height: 150px :align: center - :class:`SceneWindow` is a :class:`QMainWindow` embedding a 3D data visualization :class:`SceneWidget` and associated toolbars. It can display 2D images, 2D scatter data, 3D scatter data and 3D volumes with different visualizations. See ``plot3dSceneWindow.py`` in :ref:`plot3d-sample-code`. * - .. snapshotqt:: plot3d/img/SceneWidget.png :height: 150px :align: center :script: examples/plot3dSceneWindow.py - :class:`SceneWidget` is a :class:`Plot3DWidget` providing a 3D scene for visualizing different kind of data. It can display 2D images, 2D scatter data, 3D scatter data and 3D volumes with different visualizations. See ``plot3dSceneWindow.py`` in :ref:`plot3d-sample-code`. * - .. image:: plot3d/img/ScalarFieldView.png :height: 150px :align: center - :class:`ScalarFieldView` is a :class:`Plot3DWindow` dedicated to display 3D scalar field. It can display iso-surfaces and an interactive cutting plane. * - .. image:: plot3d/img/Plot3DWindow.png :height: 150px :align: center - :class:`Plot3DWindow` is a :class:`QMainWindow` with a :class:`Plot3DWidget` as central widget and toolbars. * - .. image:: plot3d/img/Plot3DWidget.png :height: 150px :align: center - :class:`Plot3DWidget` is the base Qt widget providing an OpenGL 3D scene. Other widgets are using this widget as the OpenGL scene canvas. * - .. image:: plot3d/img/SFViewParamTree.png :height: 150px :align: center - :class:`SFViewParamTree` is a :class:`QTreeView` widget that can be attached to a :class:`ScalarFieldView`. It displays current parameters of the :class:`ScalarFieldView` and allows to modify it. See :ref:`plot3d-sample-code`. Additional widgets: .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. image:: plot3d/img/PositionInfoWidget.png :width: 300px :align: center - :class:`~silx.gui.plot3d.tools.PositionInfoWidget.PositionInfoWidget` displays the position and value of selected data point in a :class:`SceneWidget`. * - .. image:: plot3d/img/GroupPropertiesWidget.png :height: 150px :align: center - :class:`~silx.gui.plot3d.tools.GroupPropertiesWidget.GroupPropertiesWidget` allows to reset properties of all items in a group in a :class:`SceneWidget`. :mod:`silx.gui.widgets` Widgets +++++++++++++++++++++++++++++++ .. currentmodule:: silx.gui.widgets .. list-table:: :widths: 1 4 :header-rows: 1 * - Widget - Description * - .. snapshotqt:: widgets/img/FrameBrowser.png :width: 110px :align: center from silx.gui.widgets.FrameBrowser import FrameBrowser widget = FrameBrowser() widget.setRange(0, 10) widget.show() - :class:`FrameBrowser.FrameBrowser` is a browser widget designed to browse through a sequence of integers (e.g. the indices of an array) * - .. snapshotqt:: widgets/img/HorizontalSliderWithBrowser.png :width: 150px :align: center from silx.gui.widgets.FrameBrowser import HorizontalSliderWithBrowser slider = HorizontalSliderWithBrowser() slider.show() - :class:`FrameBrowser.HorizontalSliderWithBrowser` is a :class:`FrameBrowser` with an additional slider. * - .. snapshotqt:: widgets/img/RangeSlider.png :width: 150px :align: center from silx.gui.widgets.RangeSlider import RangeSlider from silx.gui.plot.Colors import Colormap import numpy widget = RangeSlider() widget.setRange(0, 500) widget.setValues(100, 400) background = numpy.sin(numpy.arange(250) / 250.0) background[0], background[-1] = background[-1], background[0] colormap = Colormap("viridis") widget.setGroovePixmapFromProfile(background, colormap) widget.show() - :class:`~silx.gui.widgets.RangeSlider.RangeSlider` is a slider with 2 thumbs dedicated to the interactive selection of an interval. * - .. snapshotqt:: widgets/img/PeriodicCombo.png :width: 150px :align: center from silx.gui.widgets.PeriodicTable import PeriodicCombo widget = PeriodicCombo() widget.setSelection('Yb') widget.show() - :class:`PeriodicTable.PeriodicCombo` is a :class:`QComboBox` widget designed to select a single atomic element. * - .. snapshotqt:: widgets/img/PeriodicList.png :height: 150px :align: center from silx.gui.widgets.PeriodicTable import PeriodicList widget = PeriodicList() widget.setSelectedElements(('S', 'Cl')) widget.resize(200, 400) widget.show() - :class:`PeriodicTable.PeriodicList` is a :class:`QTreeWidget` designed to select one or more atomic elements. * - .. snapshotqt:: widgets/img/PeriodicTable.png :height: 150px :align: center from silx.gui.widgets.PeriodicTable import PeriodicTable widget = PeriodicTable() widget.setSelection(('S', 'H', 'Zr')) widget.show() - :class:`PeriodicTable.PeriodicTable` is a periodic table widget designed to select one or more atomic elements. * - .. snapshotqt:: widgets/img/TableWidget.png :height: 150px :align: center from silx.gui.widgets.TableWidget import TableWidget widget = TableWidget() widget.setRowCount(8) widget.setColumnCount(4) widget.resize(300, 200) widget.show() - :class:`TableWidget.TableWidget` and :class:`TableWidget.TableView` inherit respectively :class:`QTableWidget` and :class:`QTableView`, and add a context menu with *cut/copy/paste* actions. * - .. snapshotqt:: widgets/img/WaitingPushButton.png :width: 60px :align: center from silx.gui.widgets.WaitingPushButton import WaitingPushButton from silx.gui import icons animated_icon = icons.getWaitIcon() button = WaitingPushButton(icon=animated_icon.currentIcon(), text='Run') button.show() - :class:`WaitingPushButton` is a :class:`QPushButton` that can be graphically disabled, for example to wait for a callback function to finish computing. * - .. snapshotqt:: widgets/img/ThreadPoolPushButton.png :width: 100px :align: center from silx.gui.widgets.ThreadPoolPushButton import ThreadPoolPushButton button = ThreadPoolPushButton(text="Compute 2^16") button.show() - :class:`ThreadPoolPushButton` is a :class:`WaitingPushButton` that executes a callback in a thread.