magicgui.widgets.create_widget#
magicgui.widgets.create_widget(value=Undefined, annotation=None, name='', param_kind='POSITIONAL_OR_KEYWORD', label=None, gui_only=False, app=None, widget_type=None, options=None, is_result=False, raise_on_unknown=True)
#
Create and return appropriate widget subclass.
This factory function can be used to create a widget appropriate for the
provided value and/or annotation provided. See
Type Mapping Docs for details on how the widget type is
determined from type annotations.
Parameters:
-
value(Any, default:Undefined) –The starting value for the widget, by default
None -
annotation(Any, default:None) –The type annotation for the parameter represented by the widget, by default
None. -
name(str, default:'') –The name of the parameter represented by this widget. by default
"" -
param_kind(str, default:'POSITIONAL_OR_KEYWORD') –The :attr:
inspect.Parameter.kindrepresented by this widget. Used in building signatures from multiple widgets, by default "POSITIONAL_OR_KEYWORD" -
label(str, default:None) –A string to use for an associated Label widget (if this widget is being shown in a
Containerwidget, and labels are on). By default,namewill be used. Note:namerefers the name of the parameter, as might be used in a signature, whereas label is just the label for that widget in the GUI. -
gui_only(bool, default:False) –Whether the widget should be considered "only for the gui", or if it should be included in any widget container signatures, by default False
-
app(str, default:None) –The backend to use, by default
None -
widget_type(str or Type[WidgetProtocol] or None, default:None) –A class implementing a widget protocol or a string with the name of a magicgui widget type (e.g. "Label", "PushButton", etc...). If provided, this widget type will be used instead of the type autodetermined from
valueand/orannotationabove. -
options(dict, default:None) –Dict of options to pass to the Widget constructor, by default dict()
-
is_result(boolean, default:False) –Whether the widget belongs to an input or an output. By default, an input is assumed.
-
raise_on_unknown(bool, default:True) –Raise exception if no widget is found for the given type, by default True
Returns:
-
Widget–An instantiated widget subclass
Raises:
-
TypeError–If the provided or autodetected
widget_typedoes not implement any known widget protocols
Examples:
from magicgui.widgets import create_widget
# create a widget from a string value
wdg = create_widget(value="hello world")
assert wdg.value == "hello world"
# create a widget from a string annotation
wdg = create_widget(annotation=str)
assert wdg.value == ""