File: bases.md

package info (click to toggle)
magicgui 0.10.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 21,880 kB
  • sloc: python: 11,573; makefile: 11; sh: 9
file content (148 lines) | stat: -rw-r--r-- 4,208 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# `magicgui.widgets.bases`

The `magicgui.widgets.bases` module contains the base classes for all widgets.

While most users will never instantiate these classes directly, the methods and properties
of these classes are inherited by all widgets, and define the common API for all
widgets.  Therefore, it is worth being aware of the type of widget you are working with.

## Summary

::: autosummary
    magicgui.widgets.bases.Widget
    magicgui.widgets.bases.ButtonWidget
    magicgui.widgets.bases.CategoricalWidget
    magicgui.widgets.bases.BaseContainerWidget
    magicgui.widgets.bases.ContainerWidget
    magicgui.widgets.bases.ValuedContainerWidget
    magicgui.widgets.bases.DialogWidget
    magicgui.widgets.bases.MainWindowWidget
    magicgui.widgets.bases.RangedWidget
    magicgui.widgets.bases.SliderWidget
    magicgui.widgets.bases.ValueWidget
    magicgui.widgets.bases.BaseValueWidget

## Class Hierarchy

In visual form, the widget class hierarchy looks like this:

``` mermaid
classDiagram
    Widget <|-- BaseValueWidget
    BaseValueWidget <|-- ValueWidget
    Widget <|-- BaseContainerWidget
    BackendWidget ..|> WidgetProtocol : implements a
    ValueWidget <|-- RangedWidget
    ValueWidget <|-- ButtonWidget
    ValueWidget <|-- CategoricalWidget
    RangedWidget <|-- SliderWidget
    BaseContainerWidget <|-- ContainerWidget
    BaseContainerWidget <|-- ValuedContainerWidget
    BaseValueWidget <|-- ValuedContainerWidget
    Widget --* WidgetProtocol : controls a
    <<Interface>> WidgetProtocol
    class WidgetProtocol {
        _mgui_get_X()
        _mgui_set_X()
    }
    class Widget{
        name: str
        annotation: Any
        label: str
        tooltip: str
        visible: bool
        enabled: bool
        native: Any
        height: int
        width: int
        hide()
        show()
        close()
        render()
    }
    class BaseValueWidget{
        value: Any
        changed: SignalInstance
        bind(value, call) Any
        unbind()
    }
    class ValueWidget{
    }
    class RangedWidget{
        value: float | tuple
        min: float
        max: float
        step: float
        adaptive_step: bool
        range: tuple[float, float]
    }
    class SliderWidget{
        orientation: str
    }
    class ButtonWidget{
        value: bool
        clicked: SignalInstance
        text: str
    }
    class CategoricalWidget{
        choices: List[Any]
    }
    class BaseContainerWidget{
        widgets: List[Widget]
        labels: bool
        layout: str
        margins: tuple[int, int, int, int]
        reset_choices()
        asdict() Dict[str, Any]
        update(mapping)
    }

    click Widget href "#magicgui.widgets.bases.Widget"
    click BaseValueWidget href "#magicgui.widgets.bases.BaseValueWidget"
    click ValueWidget href "#magicgui.widgets.bases.ValueWidget"
    click RangedWidget href "#magicgui.widgets.bases.RangedWidget"
    click SliderWidget href "#magicgui.widgets.bases.SliderWidget"
    click ButtonWidget href "#magicgui.widgets.bases.ButtonWidget"
    click CategoricalWidget href "#magicgui.widgets.bases.CategoricalWidget"
    click BaseContainerWidget href "#magicgui.widgets.bases.BaseContainerWidget"

```

## Base Widget Classes

::: magicgui.widgets.bases.Widget
    options:
        heading_level: 3
::: magicgui.widgets.bases.ButtonWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.CategoricalWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.BaseContainerWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.ContainerWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.ValuedContainerWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.DialogWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.MainWindowWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.RangedWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.SliderWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.ValueWidget
    options:
        heading_level: 3
::: magicgui.widgets.bases.BaseValueWidget
    options:
        heading_level: 3