magicclass.widgets package¶
Subpackages¶
Submodules¶
magicclass.widgets.color module¶
- class magicclass.widgets.color.QColorEdit(parent=None, value: str = 'white')[source]¶
Bases:
PyQt5.QtWidgets.QWidget
- colorChanged¶
- class magicclass.widgets.color.QColorLineEdit(parent=None)[source]¶
Bases:
PyQt5.QtWidgets.QLineEdit
- setText(color: str | Iterable[float])[source]¶
Set the text of the lineEdit using any ColorType.
Colors will be converted to standard SVG spec names if possible, or shown as #RGBA hex if not.
- Parameters
color (ColorType) -- Can be any ColorType recognized by our utils.colormaps.standardize_color.transform_color function.
- class magicclass.widgets.color.QColorSlider(parent=None, value='white')[source]¶
Bases:
PyQt5.QtWidgets.QWidget
- colorChanged¶
- class magicclass.widgets.color.QColorSwatch(parent=None)[source]¶
Bases:
PyQt5.QtWidgets.QFrame
- colorChanged¶
- class magicclass.widgets.color.QDoubleSlider(parent=None, decimals: int = 3)[source]¶
Bases:
PyQt5.QtWidgets.QSlider
- changed¶
magicclass.widgets.containers module¶
magicclass.widgets.logger module¶
- class magicclass.widgets.logger.Logger[source]¶
Bases:
magicgui.widgets._bases.widget.Widget
,logging.Handler
A widget for logging.
Examples
Create widget as other
magicgui
ormagicclass
widgets.logger = Logger(name="my logger") # magicgui way # magicclass way @magicclass class Main: logger = field(Logger, name="my logger") # This is OK @magicclass class Main: logger = Logger()
Print something in the widget
# print something in the widget. logger.print("text") # a context manager that change the destination of print function. with logger.set_stdout(): print("text") function_that_print_something() # permanently change the destination of print function sys.stdout = logger
Logging in the widget
with logger.set_logger(): function_that_log_something() logging.getLogger(__name__).addHandler(logger)
Inline plot in the widget
with logger.set_plt(): plt.plot(np.random.random(100))
- emit(record)[source]¶
Do whatever it takes to actually log the specified logging record.
This version is intended to be implemented by subclasses and so raises a NotImplementedError.
- flush()[source]¶
Ensure all logging output has been flushed.
This version does nothing and is intended to be implemented by subclasses.
- print_html(html: str, end='<br></br>')[source]¶
Print things in the end of the logger widget using HTML string.
- print_image(arr: str | Path | np.ndarray | Image, vmin=None, vmax=None, cmap=None, norm=None, width=None, height=None) None [source]¶
Print an array as an image in the logger widget. Can be a path.
- print_rst(rst: str, end='\n')[source]¶
Print things in the end of the logger widget using rST string.
- print_table(table, header: bool = True, index: bool = True, precision: int | None = None)[source]¶
Print object as a table in the logger widget.
- Parameters
table (table-like object) -- Any object that can be passed to
pandas.DataFrame
can be used.header (bool, default is True) -- Whether to show the header row.
index (bool, default is True) -- Whether to show the index column.
precision (int, options) -- If given, float value will be rounded by this parameter.
magicclass.widgets.misc module¶
- class magicclass.widgets.misc.AbstractRangeSlider(value=UNSET, min=0, max=1000, orientation: str = 'horizontal', nullable: bool = True, **kwargs)[source]¶
Bases:
magicgui.widgets._bases.value_widget.ValueWidget
,Generic
[magicclass.widgets.misc._V
]A slider widget that represent a range like (2, 5).
This class is a temporary one and may be substituted by magicgui widget soon. See https://github.com/napari/magicgui/pull/337.
- changed¶
Signal descriptor, for declaring a signal on a class.
This is designed to be used as a class attribute, with the supported signature(s) provided in the contructor:
- class MyEmitter:
changed = Signal(int) # changed will emit an int
- def receiver(arg: int):
print("new value:", arg)
emitter = MyEmitter() emitter.changed.connect(receiver) emitter.emit(1)
Note: in the example above, MyEmitter.changed is an instance of Signal, and emitter.changed is an instance of SignalInstance.
- Parameters
*types (sequence of Type) -- A sequence of individual types
description (str, optional) -- Optional descriptive text for the signal. (not used internally).
name (str, optional) -- Optional name of the signal. If it is not specified then the name of the class attribute that is bound to the signal will be used. default None
check_nargs_on_connect (str, optional) -- Whether to check the number of positional args against signature when connecting a new callback. This can also be provided at connection time using .connect(..., check_nargs=True). By default, True.
check_types_on_connect (str, optional) -- Whether to check the callback parameter types against signature when connecting a new callback. This can also be provided at connection time using .connect(..., check_types=True). By default, False.
- property max: magicclass.widgets.misc._V¶
- property min: magicclass.widgets.misc._V¶
- property range: tuple[~_V, ~_V]¶
- property value: tuple[~_V, ~_V]¶
Return current value of the widget. This may be interpreted by backends.
- class magicclass.widgets.misc.CheckButton(text: str | None = None, **kwargs)[source]¶
Bases:
magicgui.widgets.PushButton
A checkable button.
- class magicclass.widgets.misc.ConsoleTextEdit(*args, **kwargs)[source]¶
Bases:
magicgui.widgets.TextEdit
A text edit with console-like setting.
- property selected: str¶
Return selected string.
- property tab_size¶
- class magicclass.widgets.misc.FloatEdit(value=UNSET, **kwargs)[source]¶
Bases:
magicgui.widgets.LineEdit
- class magicclass.widgets.misc.FloatRangeSlider(value=UNSET, min=0, max=1000, orientation: str = 'horizontal', nullable: bool = True, **kwargs)[source]¶
Bases:
magicclass.widgets.misc.AbstractRangeSlider
[float
]- name: str¶
- class magicclass.widgets.misc.IntEdit(value=UNSET, **kwargs)[source]¶
Bases:
magicgui.widgets.LineEdit
- class magicclass.widgets.misc.QRangeSlider(qwidg: PyQt5.QtWidgets.QWidget)[source]¶
Bases:
magicgui.backends._qtpy.widgets.QBaseWidget
- class magicclass.widgets.misc.RangeSlider(value=UNSET, min=0, max=1000, orientation: str = 'horizontal', nullable: bool = True, **kwargs)[source]¶
Bases:
magicclass.widgets.misc.AbstractRangeSlider
[int
]- name: str¶
- class magicclass.widgets.misc.SpreadSheet(read_only: bool = False)[source]¶
Bases:
magicclass.widgets.utils.FreeWidget
,MutableSequence
[magicgui.widgets._table.Table
]A simple spread sheet widget.
- index(value[, start[, stop]]) integer -- return first index of value. [source]¶
Raises ValueError if the value is not present.
Supporting start and stop arguments is optional, but recommended.
- property read_only¶
magicclass.widgets.plot module¶
- class magicclass.widgets.plot.Figure(nrows: int = 1, ncols: int = 1, figsize: tuple[float, float] = (4.0, 3.0), style=None, **kwargs)[source]¶
- class magicclass.widgets.plot.Figure(fig: magicclass.widgets.plot.Figure, **kwargs)
Bases:
magicclass.widgets.utils.FreeWidget
A matplotlib figure canvas.
- property ax: Axes¶
The first matplotlib axis.
- property axes: list[Axes]¶
List of matplotlib axes.
- property enabled: bool¶
toggle interactivity of the figure canvas.
- property interactive: bool¶
toggle interactivity of the figure canvas.
- property mouse_click_callbacks: list[typing.Callable]¶
- class magicclass.widgets.plot.SeabornFigure(nrows: int = 1, ncols: int = 1, figsize: tuple[float, float] = (4.0, 3.0), style=None, **kwargs)[source]¶
Bases:
magicclass.widgets.plot.Figure
A matplotlib figure canvas implemented with seaborn plot functions.
Not all the seaborn plot functions are supported since some of them are figure-level functions and incompatible with specifying axes.
magicclass.widgets.separator module¶
- class magicclass.widgets.separator.Separator(orientation: str = 'horizontal', text: str = '', name: str = '', button: bool = False)[source]¶
Bases:
magicclass.widgets.utils.FreeWidget
A Separator widget that can be used in both widgets and menus. This widget is not actually added to menus or toolbars.
- btn_clicked¶
Signal descriptor, for declaring a signal on a class.
This is designed to be used as a class attribute, with the supported signature(s) provided in the contructor:
- class MyEmitter:
changed = Signal(int) # changed will emit an int
- def receiver(arg: int):
print("new value:", arg)
emitter = MyEmitter() emitter.changed.connect(receiver) emitter.emit(1)
Note: in the example above, MyEmitter.changed is an instance of Signal, and emitter.changed is an instance of SignalInstance.
- Parameters
*types (sequence of Type) -- A sequence of individual types
description (str, optional) -- Optional descriptive text for the signal. (not used internally).
name (str, optional) -- Optional name of the signal. If it is not specified then the name of the class attribute that is bound to the signal will be used. default None
check_nargs_on_connect (str, optional) -- Whether to check the number of positional args against signature when connecting a new callback. This can also be provided at connection time using .connect(..., check_nargs=True). By default, True.
check_types_on_connect (str, optional) -- Whether to check the callback parameter types against signature when connecting a new callback. This can also be provided at connection time using .connect(..., check_types=True). By default, False.
- property btn_text¶
magicclass.widgets.sequence module¶
- class magicclass.widgets.sequence.ListDataView(obj: magicgui.widgets.ListEdit)[source]¶
Bases:
object
Data view of ListEdit.
magicclass.widgets.utils module¶
Module contents¶
Advanced widgets for magic class GUI.
These widgets are all compatible with the append
method of Container widgets.
- class magicclass.widgets.ButtonContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A Container Widget hidden in a button.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- property btn_text¶
- property text¶
- class magicclass.widgets.CheckButton(text: str | None = None, **kwargs)[source]¶
Bases:
magicgui.widgets.PushButton
A checkable button.
- class magicclass.widgets.CollapsibleContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A collapsible Container Widget.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- property btn_text¶
- property collapsed: bool¶
- property text¶
- class magicclass.widgets.ColorEdit(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, value: Any = UNSET, bind: Any = UNSET, nullable=False)¶
Bases:
magicgui.widgets._bases.value_widget.ValueWidget
A widget for editing colors.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
value (tuple of float or str) -- The starting value for the widget.
bind (Any) -- A value or callback to bind this widget, then whenever widget.value is accessed, the value provided here will be returned.
value
can be a callable, in which casevalue(self)
will be returned (i.e. your callback must accept a single parameter, which is this widget instance.).value -- RGBA color, color code or standard color name.
- class magicclass.widgets.ColorSlider(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, value: Any = UNSET, bind: Any = UNSET, nullable=False)¶
Bases:
magicgui.widgets._bases.value_widget.ValueWidget
A multi-slider for editing colors.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
value (tuple of float or str) -- The starting value for the widget.
bind (Any) -- A value or callback to bind this widget, then whenever widget.value is accessed, the value provided here will be returned.
value
can be a callable, in which casevalue(self)
will be returned (i.e. your callback must accept a single parameter, which is this widget instance.).value -- RGBA color, color code or standard color name.
- class magicclass.widgets.ConsoleTextEdit(*args, **kwargs)[source]¶
Bases:
magicgui.widgets.TextEdit
A text edit with console-like setting.
- property selected: str¶
Return selected string.
- property tab_size¶
- class magicclass.widgets.DictWidget(value=None, **kwargs)[source]¶
Bases:
magicclass.widgets.pywidgets.object.BaseWidget
,MutableMapping
- items() magicclass.widgets.pywidgets.dict.DictItemView [source]¶
Return the view of dictionary keys and values as strings and Python objects.
- property value: dict[str, typing.Any]¶
- values() magicclass.widgets.pywidgets.dict.DictValueView [source]¶
Return the view of dictionary values as Python objects.
- class magicclass.widgets.DraggableContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A draggable Container Widget.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- class magicclass.widgets.Figure(nrows: int = 1, ncols: int = 1, figsize: tuple[float, float] = (4.0, 3.0), style=None, **kwargs)[source]¶
- class magicclass.widgets.Figure(fig: magicclass.widgets.plot.Figure, **kwargs)
Bases:
magicclass.widgets.utils.FreeWidget
A matplotlib figure canvas.
- property ax: Axes¶
The first matplotlib axis.
- property axes: list[Axes]¶
List of matplotlib axes.
- property enabled: bool¶
toggle interactivity of the figure canvas.
- property interactive: bool¶
toggle interactivity of the figure canvas.
- property mouse_click_callbacks: list[typing.Callable]¶
- class magicclass.widgets.FloatRangeSlider(value=UNSET, min=0, max=1000, orientation: str = 'horizontal', nullable: bool = True, **kwargs)[source]¶
Bases:
magicclass.widgets.misc.AbstractRangeSlider
[float
]- name: str¶
- class magicclass.widgets.FrameContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A QGroupBox like container without title.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- class magicclass.widgets.FreeWidget(layout='vertical', **kwargs)[source]¶
Bases:
magicgui.widgets._bases.widget.Widget
A Widget class with any QWidget as a child.
- class magicclass.widgets.GroupBoxContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A QGroupBox like container
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- property name¶
- class magicclass.widgets.HCollapsibleContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A collapsible Container Widget.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- property collapsed: bool¶
- class magicclass.widgets.ListContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A Container Widget that support drag and drop.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- property current_index¶
- class magicclass.widgets.ListEdit(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'horizontal', widgets: Sequence[Widget] = (), labels: bool = False, value: Iterable[_V] | _Unset = UNSET, nullable: bool = False, options: WidgetOptions = None)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]- A widget to represent a list of values.
A ListEdit container can create a list with multiple objects of same type. It will contain many child widgets and their value is represented as a Python list object. If a list is given as the initial value, types of child widgets are determined from the contents. Number of contents can be adjusted with +/- buttons.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
name -- The name of the parameter represented by this widget. by default ""
annotation -- The type annotation for the parameter represented by the widget, by default
None
label -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip -- A tooltip to display when hovering over the widget.
visible -- Whether the widget is visible, by default
True
.backend_kwargs -- keyword argument to pass to the backend widget constructor.
options (WidgetOptions) -- Widget options of child widgets.
- property annotation¶
Return type annotation for the parameter represented by the widget. ForwardRefs will be resolve when setting the annotation. For ListEdit, annotation will be like 'list[str]'.
- property buttons_visible: bool¶
Toggle visibility of +/- buttons.
- property data: magicclass.widgets.sequence.ListDataView¶
Return a data view of current value.
- property value: list¶
Return current value as a list object.
- class magicclass.widgets.ListWidget(value: Optional[Iterable[Any]] = None, dragdrop: bool = True, **kwargs)[source]¶
Bases:
magicclass.widgets.pywidgets.object.BaseWidget
,MutableSequence
- index(obj: Any, start: int = 0, stop: Optional[int] = None) int [source]¶
Find object or list widget item from the list widget.
- Parameters
obj (Any) -- Object to find. If a PyListWidgetItem is given, the index of the item (not the tagged object) is searched for.
start (int, optional) -- Starting index, by default 0
stop (int, optional) -- Index to stop searching.
- Returns
Index of object.
- Return type
int
- Raises
ValueError -- If object was not found.
- property value: list[typing.Any]¶
Get all the contents as a Python list.
- Returns
Contents of the list widget.
- Return type
list
- class magicclass.widgets.Logger[source]¶
Bases:
magicgui.widgets._bases.widget.Widget
,logging.Handler
A widget for logging.
Examples
Create widget as other
magicgui
ormagicclass
widgets.logger = Logger(name="my logger") # magicgui way # magicclass way @magicclass class Main: logger = field(Logger, name="my logger") # This is OK @magicclass class Main: logger = Logger()
Print something in the widget
# print something in the widget. logger.print("text") # a context manager that change the destination of print function. with logger.set_stdout(): print("text") function_that_print_something() # permanently change the destination of print function sys.stdout = logger
Logging in the widget
with logger.set_logger(): function_that_log_something() logging.getLogger(__name__).addHandler(logger)
Inline plot in the widget
with logger.set_plt(): plt.plot(np.random.random(100))
- emit(record)[source]¶
Do whatever it takes to actually log the specified logging record.
This version is intended to be implemented by subclasses and so raises a NotImplementedError.
- flush()[source]¶
Ensure all logging output has been flushed.
This version does nothing and is intended to be implemented by subclasses.
- print_html(html: str, end='<br></br>')[source]¶
Print things in the end of the logger widget using HTML string.
- print_image(arr: str | Path | np.ndarray | Image, vmin=None, vmax=None, cmap=None, norm=None, width=None, height=None) None [source]¶
Print an array as an image in the logger widget. Can be a path.
- print_rst(rst: str, end='\n')[source]¶
Print things in the end of the logger widget using rST string.
- print_table(table, header: bool = True, index: bool = True, precision: int | None = None)[source]¶
Print object as a table in the logger widget.
- Parameters
table (table-like object) -- Any object that can be passed to
pandas.DataFrame
can be used.header (bool, default is True) -- Whether to show the header row.
index (bool, default is True) -- Whether to show the index column.
precision (int, options) -- If given, float value will be rounded by this parameter.
- class magicclass.widgets.OptionalWidget(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout='vertical', widgets: Sequence[Widget] = (), labels=True, inner_widget: type[ValueWidget] | None = None, text: str = None, nullable=True, value=UNSET, options=None)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A container that can represent optional argument.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
name -- The name of the parameter represented by this widget. by default ""
annotation -- The type annotation for the parameter represented by the widget, by default
None
label -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip -- A tooltip to display when hovering over the widget.
visible -- Whether the widget is visible, by default
True
.backend_kwargs -- keyword argument to pass to the backend widget constructor.
text (str) -- Text of checkbox.
value (Any) -- Initial value.
options (dict) -- Widget options of the inner value widget.
- property text: str¶
- property value: Any¶
- class magicclass.widgets.RangeSlider(value=UNSET, min=0, max=1000, orientation: str = 'horizontal', nullable: bool = True, **kwargs)[source]¶
Bases:
magicclass.widgets.misc.AbstractRangeSlider
[int
]- name: str¶
- class magicclass.widgets.ScrollableContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A scrollable Container Widget.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- class magicclass.widgets.SeabornFigure(nrows: int = 1, ncols: int = 1, figsize: tuple[float, float] = (4.0, 3.0), style=None, **kwargs)[source]¶
Bases:
magicclass.widgets.plot.Figure
A matplotlib figure canvas implemented with seaborn plot functions.
Not all the seaborn plot functions are supported since some of them are figure-level functions and incompatible with specifying axes.
- class magicclass.widgets.Separator(orientation: str = 'horizontal', text: str = '', name: str = '', button: bool = False)[source]¶
Bases:
magicclass.widgets.utils.FreeWidget
A Separator widget that can be used in both widgets and menus. This widget is not actually added to menus or toolbars.
- btn_clicked¶
Signal descriptor, for declaring a signal on a class.
This is designed to be used as a class attribute, with the supported signature(s) provided in the contructor:
- class MyEmitter:
changed = Signal(int) # changed will emit an int
- def receiver(arg: int):
print("new value:", arg)
emitter = MyEmitter() emitter.changed.connect(receiver) emitter.emit(1)
Note: in the example above, MyEmitter.changed is an instance of Signal, and emitter.changed is an instance of SignalInstance.
- Parameters
*types (sequence of Type) -- A sequence of individual types
description (str, optional) -- Optional descriptive text for the signal. (not used internally).
name (str, optional) -- Optional name of the signal. If it is not specified then the name of the class attribute that is bound to the signal will be used. default None
check_nargs_on_connect (str, optional) -- Whether to check the number of positional args against signature when connecting a new callback. This can also be provided at connection time using .connect(..., check_nargs=True). By default, True.
check_types_on_connect (str, optional) -- Whether to check the callback parameter types against signature when connecting a new callback. This can also be provided at connection time using .connect(..., check_types=True). By default, False.
- property btn_text¶
- central_widget: QWidget | None¶
- name: str¶
- class magicclass.widgets.SplitterContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A Container equipped with splitter
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- class magicclass.widgets.SpreadSheet(read_only: bool = False)[source]¶
Bases:
magicclass.widgets.utils.FreeWidget
,MutableSequence
[magicgui.widgets._table.Table
]A simple spread sheet widget.
- index(value[, start[, stop]]) integer -- return first index of value. [source]¶
Raises ValueError if the value is not present.
Supporting start and stop arguments is optional, but recommended.
- property read_only¶
- class magicclass.widgets.StackedContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A stacked Container Widget
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- property current_index¶
- class magicclass.widgets.SubWindowsContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A window-in-window container
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- class magicclass.widgets.TabbedContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A tab categorized Container Widget.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- property current_index¶
- class magicclass.widgets.ToolBoxContainer(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'vertical', widgets: Sequence[Widget] = (), labels=True)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]A Tool box Widget.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
- property current_index¶
- class magicclass.widgets.TupleEdit(name: str = '', annotation: Any = None, label: str = None, tooltip: str | None = None, visible: bool | None = None, enabled: bool = True, gui_only=False, backend_kwargs={}, layout: str = 'horizontal', widgets: Sequence[Widget] = (), labels=True, value: Iterable[_V] | _Unset = UNSET, nullable: bool = False, options: WidgetOptions = None)¶
Bases:
magicgui.widgets._bases.widget.Widget
,magicgui.widgets._bases.mixins._OrientationMixin
,MutableSequence
[magicgui.widgets._bases.widget.Widget
]- A widget to represent a tuple of values.
A TupleEdit container has several child widgets of different type. Their value is represented as a Python tuple object. If a tuple is given as the initial value, types of child widgets are determined one by one. Unlike ListEdit, number of contents is not editable.
- Parameters
name (str) -- The name of the parameter represented by this widget. by default ""
annotation (Any) -- The type annotation for the parameter represented by the widget, by default
None
label (str) -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip (str) -- A tooltip to display when hovering over the widget.
visible (bool) -- Whether the widget is visible, by default
True
.backend_kwargs (dict) -- keyword argument to pass to the backend widget constructor.
name -- The name of the parameter represented by this widget. by default ""
annotation -- The type annotation for the parameter represented by the widget, by default
None
label -- A string to use for an associated Label widget (if this widget is being shown in a
Container
widget, and labels are on). By default,name
will be used. Note:name
refers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI.tooltip -- A tooltip to display when hovering over the widget.
visible -- Whether the widget is visible, by default
True
.backend_kwargs -- keyword argument to pass to the backend widget constructor.
options (WidgetOptions) -- Widget options of child widgets.
- property annotation¶
Return type annotation for the parameter represented by the widget. ForwardRefs will be resolve when setting the annotation. For TupleEdit, annotation will be like 'tuple[str, int]'.
- property value: tuple¶
Return current value as a tuple.