0
# Basic UI Widgets
1
2
Core interactive elements for building user interfaces. These widgets provide the fundamental building blocks for user interaction including input controls, display elements, selection widgets, and specialized controls.
3
4
## Capabilities
5
6
### Text Display
7
8
Display static and dynamic text content with formatting options.
9
10
```python { .api }
11
def add_text(default_value: str = '', *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', wrap: int = '', bullet: bool = '', color: Union[List[int], Tuple[int, ...]] = '') -> Union[int, str]:
12
"""
13
Adds text display widget.
14
15
Parameters:
16
- default_value (str): Text content to display
17
- wrap (int): Pixel width for text wrapping (0 = no wrap)
18
- bullet (bool): Display with bullet point
19
- color (tuple): Text color as (r, g, b, a)
20
21
Returns:
22
Union[int, str]: Item ID
23
"""
24
```
25
26
### Button Controls
27
28
Interactive buttons for user actions.
29
30
```python { .api }
31
def add_button(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', small: bool = '', arrow: bool = '', direction: int = '', repeat: bool = '') -> Union[int, str]:
32
"""
33
Adds a clickable button.
34
35
Parameters:
36
- small (bool): Use small button style
37
- arrow (bool): Display as arrow button
38
- direction (int): Arrow direction (mvDir_* constants)
39
- repeat (bool): Generate repeated callbacks while held
40
41
Returns:
42
Union[int, str]: Item ID
43
"""
44
45
def add_image_button(texture_tag: Union[int, str], *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', frame_padding: int = '', tint_color: Union[List[int], Tuple[int, ...]] = '', background_color: Union[List[int], Tuple[int, ...]] = '', uv_min: Union[List[float], Tuple[float, ...]] = '', uv_max: Union[List[float], Tuple[float, ...]] = '') -> Union[int, str]:
46
"""
47
Adds an image button using a texture.
48
49
Parameters:
50
- texture_tag: Texture registry item to use
51
- frame_padding (int): Padding around the image
52
- tint_color (tuple): Image tint color
53
- background_color (tuple): Button background color
54
- uv_min, uv_max (tuple): UV coordinates for texture sampling
55
56
Returns:
57
Union[int, str]: Item ID
58
"""
59
```
60
61
#### Usage Example
62
63
```python
64
import dearpygui.dearpygui as dpg
65
66
def button_callback():
67
print("Button was clicked!")
68
69
# Create buttons
70
dpg.add_button(label="Click Me", callback=button_callback)
71
dpg.add_button(label="Small Button", small=True)
72
dpg.add_button(label="Arrow", arrow=True, direction=dpg.mvDir_Right)
73
```
74
75
### Text Input Controls
76
77
Single and multi-line text input widgets with validation and formatting options.
78
79
```python { .api }
80
def add_input_text(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: str = '', hint: str = '', multiline: bool = '', no_spaces: bool = '', uppercase: bool = '', tab_input: bool = '', decimal: bool = '', hexadecimal: bool = '', readonly: bool = '', password: bool = '', scientific: bool = '', on_enter: bool = '') -> Union[int, str]:
81
"""
82
Adds a text input field.
83
84
Parameters:
85
- default_value (str): Initial text content
86
- hint (str): Placeholder text
87
- multiline (bool): Enable multiline editing
88
- no_spaces (bool): Disallow space characters
89
- uppercase (bool): Convert to uppercase
90
- tab_input (bool): Allow tab character input
91
- decimal (bool): Allow decimal numbers only
92
- hexadecimal (bool): Allow hexadecimal input only
93
- readonly (bool): Make read-only
94
- password (bool): Hide input with dots
95
- scientific (bool): Allow scientific notation
96
- on_enter (bool): Trigger callback only on Enter key
97
98
Returns:
99
Union[int, str]: Item ID
100
"""
101
```
102
103
#### Usage Example
104
105
```python
106
# Text input variants
107
dpg.add_input_text(label="Name", hint="Enter your name")
108
dpg.add_input_text(label="Password", password=True)
109
dpg.add_input_text(label="Notes", multiline=True, height=100)
110
dpg.add_input_text(label="Hex Value", hexadecimal=True, uppercase=True)
111
```
112
113
### Numeric Input Controls
114
115
Specialized input controls for numeric values with type validation.
116
117
```python { .api }
118
def add_input_int(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: int = '', min_value: int = '', max_value: int = '', min_clamped: bool = '', max_clamped: bool = '', step: int = '', step_fast: int = '', on_enter: bool = '', readonly: bool = '') -> Union[int, str]:
119
"""
120
Adds an integer input field.
121
122
Parameters:
123
- default_value (int): Initial value
124
- min_value, max_value (int): Value constraints
125
- min_clamped, max_clamped (bool): Enforce constraints
126
- step (int): Step size for increment/decrement
127
- step_fast (int): Fast step size (Shift+click)
128
- on_enter (bool): Callback only on Enter
129
- readonly (bool): Make read-only
130
131
Returns:
132
Union[int, str]: Item ID
133
"""
134
135
def add_input_float(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: float = '', format: str = '', min_value: float = '', max_value: float = '', min_clamped: bool = '', max_clamped: bool = '', step: float = '', step_fast: float = '', on_enter: bool = '', readonly: bool = '') -> Union[int, str]:
136
"""
137
Adds a float input field.
138
139
Parameters:
140
- default_value (float): Initial value
141
- format (str): Display format (e.g., "%.3f")
142
- min_value, max_value (float): Value constraints
143
- min_clamped, max_clamped (bool): Enforce constraints
144
- step (float): Step size for increment/decrement
145
- step_fast (float): Fast step size (Shift+click)
146
147
Returns:
148
Union[int, str]: Item ID
149
"""
150
151
def add_input_double(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: float = '', format: str = '', min_value: float = '', max_value: float = '', min_clamped: bool = '', max_clamped: bool = '', step: float = '', step_fast: float = '', on_enter: bool = '', readonly: bool = '') -> Union[int, str]:
152
"""Adds a double precision float input field with same parameters as add_input_float."""
153
154
def add_input_floatx(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: Union[List[float], Tuple[float, ...]] = '', format: str = '', min_value: float = '', max_value: float = '', min_clamped: bool = '', max_clamped: bool = '', step: float = '', step_fast: float = '', on_enter: bool = '', readonly: bool = '', size: int = '') -> Union[int, str]:
155
"""
156
Adds a multi-component float input (2-4 values).
157
158
Parameters:
159
- default_value (tuple): Initial values tuple
160
- size (int): Number of components (2-4)
161
162
Returns:
163
Union[int, str]: Item ID
164
"""
165
166
def add_input_intx(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: Union[List[int], Tuple[int, ...]] = '', min_value: int = '', max_value: int = '', min_clamped: bool = '', max_clamped: bool = '', step: int = '', step_fast: int = '', on_enter: bool = '', readonly: bool = '', size: int = '') -> Union[int, str]:
167
"""
168
Adds a multi-component integer input (2-4 values).
169
170
Parameters:
171
- default_value (tuple): Initial values tuple
172
- size (int): Number of components (2-4)
173
174
Returns:
175
Union[int, str]: Item ID
176
"""
177
```
178
179
### Slider Controls
180
181
Interactive sliders for numeric value selection with visual feedback.
182
183
```python { .api }
184
def add_slider_int(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: int = '', vertical: bool = '', no_input: bool = '', clamped: bool = '', min_value: int = '', max_value: int = '', format: str = '') -> Union[int, str]:
185
"""
186
Adds an integer slider.
187
188
Parameters:
189
- default_value (int): Initial value
190
- vertical (bool): Vertical orientation
191
- no_input (bool): Disable text input
192
- clamped (bool): Clamp to min/max range
193
- min_value, max_value (int): Range limits
194
- format (str): Display format
195
196
Returns:
197
Union[int, str]: Item ID
198
"""
199
200
def add_slider_float(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: float = '', vertical: bool = '', no_input: bool = '', clamped: bool = '', min_value: float = '', max_value: float = '', format: str = '', power: float = '') -> Union[int, str]:
201
"""
202
Adds a float slider.
203
204
Parameters:
205
- default_value (float): Initial value
206
- vertical (bool): Vertical orientation
207
- no_input (bool): Disable text input
208
- clamped (bool): Clamp to min/max range
209
- min_value, max_value (float): Range limits
210
- format (str): Display format (e.g., "%.3f")
211
- power (float): Power curve for non-linear scaling
212
213
Returns:
214
Union[int, str]: Item ID
215
"""
216
217
def add_slider_floatx(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: Union[List[float], Tuple[float, ...]] = '', no_input: bool = '', clamped: bool = '', min_value: float = '', max_value: float = '', format: str = '', power: float = '', size: int = '') -> Union[int, str]:
218
"""
219
Adds a multi-component float slider (2-4 values).
220
221
Parameters:
222
- default_value (tuple): Initial values
223
- size (int): Number of components (2-4)
224
225
Returns:
226
Union[int, str]: Item ID
227
"""
228
```
229
230
### Drag Controls
231
232
Direct manipulation controls for precise numeric input.
233
234
```python { .api }
235
def add_drag_float(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: float = '', format: str = '', speed: float = '', min_value: float = '', max_value: float = '', no_input: bool = '', clamped: bool = '') -> Union[int, str]:
236
"""
237
Adds a draggable float input.
238
239
Parameters:
240
- default_value (float): Initial value
241
- format (str): Display format
242
- speed (float): Drag sensitivity
243
- min_value, max_value (float): Range limits
244
- no_input (bool): Disable text input
245
- clamped (bool): Clamp to range
246
247
Returns:
248
Union[int, str]: Item ID
249
"""
250
251
def add_drag_int(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: int = '', format: str = '', speed: float = '', min_value: int = '', max_value: int = '', no_input: bool = '', clamped: bool = '') -> Union[int, str]:
252
"""Adds a draggable integer input with same parameters as add_drag_float."""
253
```
254
255
### Selection Controls
256
257
Widgets for user selection including checkboxes, radio buttons, and dropdown lists.
258
259
```python { .api }
260
def add_checkbox(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: bool = '') -> Union[int, str]:
261
"""
262
Adds a checkbox for boolean selection.
263
264
Parameters:
265
- default_value (bool): Initial checked state
266
267
Returns:
268
Union[int, str]: Item ID
269
"""
270
271
def add_radio_button(items: Union[List[str], Tuple[str, ...]], *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: int = '', horizontal: bool = '') -> Union[int, str]:
272
"""
273
Adds radio buttons for single selection from multiple options.
274
275
Parameters:
276
- items (list): List of option labels
277
- default_value (int): Index of initially selected item
278
- horizontal (bool): Horizontal layout
279
280
Returns:
281
Union[int, str]: Item ID
282
"""
283
284
def add_combo(items: Union[List[str], Tuple[str, ...]], *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: str = '', popup_align_left: bool = '', no_arrow_button: bool = '', no_preview: bool = '', height_mode: int = '') -> Union[int, str]:
285
"""
286
Adds a dropdown combo box.
287
288
Parameters:
289
- items (list): List of selectable options
290
- default_value (str): Initially selected item
291
- popup_align_left (bool): Align popup to left
292
- no_arrow_button (bool): Hide dropdown arrow
293
- no_preview (bool): Don't show selected item
294
- height_mode (int): Popup height mode
295
296
Returns:
297
Union[int, str]: Item ID
298
"""
299
300
def add_listbox(items: Union[List[str], Tuple[str, ...]], *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: int = '', num_items: int = '') -> Union[int, str]:
301
"""
302
Adds a scrollable list box.
303
304
Parameters:
305
- items (list): List of selectable items
306
- default_value (int): Index of initially selected item
307
- num_items (int): Number of visible items
308
309
Returns:
310
Union[int, str]: Item ID
311
"""
312
```
313
314
### Color Controls
315
316
Specialized widgets for color selection and editing.
317
318
```python { .api }
319
def add_color_edit(default_value: Union[List[int], Tuple[int, ...]] = '', *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', no_alpha: bool = '', no_picker: bool = '', no_options: bool = '', no_small_preview: bool = '', no_inputs: bool = '', no_tooltip: bool = '', no_label: bool = '', no_drag_drop: bool = '', alpha_bar: bool = '', alpha_preview: int = '', display_mode: int = '', display_type: int = '', input_mode: int = '') -> Union[int, str]:
320
"""
321
Adds an RGBA color editor with preview.
322
323
Parameters:
324
- default_value (tuple): Initial color as (r, g, b, a)
325
- no_alpha (bool): Hide alpha channel
326
- no_picker (bool): Disable color picker popup
327
- no_options (bool): Hide options menu
328
- no_small_preview (bool): Hide small color preview
329
- no_inputs (bool): Hide input fields
330
- no_tooltip (bool): Disable tooltips
331
- no_label (bool): Hide text label
332
- no_drag_drop (bool): Disable drag and drop
333
- alpha_bar (bool): Show alpha bar
334
- alpha_preview (int): Alpha preview mode
335
- display_mode (int): Color display mode
336
- display_type (int): Color display type
337
- input_mode (int): Input mode for values
338
339
Returns:
340
Union[int, str]: Item ID
341
"""
342
343
def add_color_picker(default_value: Union[List[int], Tuple[int, ...]] = '', *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', no_alpha: bool = '', no_side_preview: bool = '', no_small_preview: bool = '', no_inputs: bool = '', no_tooltip: bool = '', no_label: bool = '', alpha_bar: bool = '', display_rgb: bool = '', display_hsv: bool = '', display_hex: bool = '', picker_mode: int = '', alpha_preview: int = '', display_type: int = '', input_mode: int = '') -> Union[int, str]:
344
"""
345
Adds a full color picker widget.
346
347
Parameters:
348
- default_value (tuple): Initial color
349
- no_side_preview (bool): Hide side preview
350
- display_rgb (bool): Show RGB values
351
- display_hsv (bool): Show HSV values
352
- display_hex (bool): Show hex values
353
- picker_mode (int): Color picker style
354
355
Returns:
356
Union[int, str]: Item ID
357
"""
358
359
def add_color_button(default_value: Union[List[int], Tuple[int, ...]] = '', *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', no_alpha: bool = '', no_border: bool = '', no_drag_drop: bool = '') -> Union[int, str]:
360
"""
361
Adds a color button that displays a color swatch.
362
363
Parameters:
364
- default_value (tuple): Color to display
365
- no_alpha (bool): Hide alpha channel
366
- no_border (bool): Remove border
367
- no_drag_drop (bool): Disable drag and drop
368
369
Returns:
370
Union[int, str]: Item ID
371
"""
372
```
373
374
### Display Elements
375
376
Visual elements for information display and user feedback.
377
378
```python { .api }
379
def add_image(texture_tag: Union[int, str], *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', payload_type: str = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', pmin: Union[List[int], Tuple[int, ...]] = '', pmax: Union[List[int], Tuple[int, ...]] = '', uv_min: Union[List[float], Tuple[float, ...]] = '', uv_max: Union[List[float], Tuple[float, ...]] = '', tint_color: Union[List[int], Tuple[int, ...]] = '', border_color: Union[List[int], Tuple[int, ...]] = '') -> Union[int, str]:
380
"""
381
Adds an image display widget.
382
383
Parameters:
384
- texture_tag: Texture registry item to display
385
- pmin, pmax (tuple): Display region
386
- uv_min, uv_max (tuple): UV coordinates for texture sampling
387
- tint_color (tuple): Image tint color
388
- border_color (tuple): Border color
389
390
Returns:
391
Union[int, str]: Item ID
392
"""
393
394
def add_progress_bar(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: float = '', overlay: str = '') -> Union[int, str]:
395
"""
396
Adds a progress bar widget.
397
398
Parameters:
399
- default_value (float): Progress value (0.0 to 1.0)
400
- overlay (str): Text overlay on progress bar
401
402
Returns:
403
Union[int, str]: Item ID
404
"""
405
406
def add_loading_indicator(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', style: int = '', circle_count: int = '', speed: float = '', radius: float = '', thickness: float = '', color: Union[List[int], Tuple[int, ...]] = '', secondary_color: Union[List[int], Tuple[int, ...]] = '') -> Union[int, str]:
407
"""
408
Adds an animated loading indicator.
409
410
Parameters:
411
- style (int): Loading animation style
412
- circle_count (int): Number of circles in animation
413
- speed (float): Animation speed
414
- radius (float): Indicator radius
415
- thickness (float): Line thickness
416
- color (tuple): Primary color
417
- secondary_color (tuple): Secondary color
418
419
Returns:
420
Union[int, str]: Item ID
421
"""
422
423
def add_separator(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '') -> Union[int, str]:
424
"""
425
Adds a horizontal line separator.
426
427
Returns:
428
Union[int, str]: Item ID
429
"""
430
431
def add_spacer(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '') -> Union[int, str]:
432
"""
433
Adds invisible spacing for layout.
434
435
Parameters:
436
- width, height (int): Spacer dimensions
437
438
Returns:
439
Union[int, str]: Item ID
440
"""
441
```
442
443
### Specialized Controls
444
445
Advanced and specialized widget types for specific use cases.
446
447
```python { .api }
448
def add_selectable(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: bool = '', span_columns: bool = '', disable_popup_close: bool = '') -> Union[int, str]:
449
"""
450
Adds a selectable text item that can be clicked to select/deselect.
451
452
Parameters:
453
- default_value (bool): Initial selection state
454
- span_columns (bool): Span across table columns
455
- disable_popup_close (bool): Prevent closing popups on selection
456
457
Returns:
458
Union[int, str]: Item ID
459
"""
460
461
def add_knob_float(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: float = '', min_value: float = '', max_value: float = '') -> Union[int, str]:
462
"""
463
Adds a rotary knob control for float values.
464
465
Parameters:
466
- default_value (float): Initial knob value
467
- min_value, max_value (float): Value range
468
469
Returns:
470
Union[int, str]: Item ID
471
"""
472
473
def add_3d_slider(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', width: int = '', height: int = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: Union[List[float], Tuple[float, ...]] = '', max_x: float = '', max_y: float = '', max_z: float = '', min_x: float = '', min_y: float = '', min_z: float = '', scale: float = '') -> Union[int, str]:
474
"""
475
Adds a 3D box slider for three-dimensional value input.
476
477
Parameters:
478
- default_value (tuple): Initial (x, y, z) values
479
- min_x, max_x (float): X-axis range
480
- min_y, max_y (float): Y-axis range
481
- min_z, max_z (float): Z-axis range
482
- scale (float): Visual scale factor
483
484
Returns:
485
Union[int, str]: Item ID
486
"""
487
488
def add_tooltip(parent: Union[int, str], *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', show: bool = '', delay: float = '', hide_on_activity: bool = '') -> Union[int, str]:
489
"""
490
Adds a tooltip that appears on hover over the parent item.
491
492
Parameters:
493
- parent: Item to attach tooltip to
494
- delay (float): Delay before showing tooltip (seconds)
495
- hide_on_activity (bool): Hide tooltip on user activity
496
497
Returns:
498
Union[int, str]: Item ID
499
"""
500
```
501
502
### Date and Time Controls
503
504
Specialized widgets for date and time selection.
505
506
```python { .api }
507
def add_date_picker(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: dict = '', level: int = '') -> Union[int, str]:
508
"""
509
Adds a date picker widget.
510
511
Parameters:
512
- default_value (dict): Initial date as {'month_day': day, 'year': year, 'month': month}
513
- level (int): Display level (day/month/year)
514
515
Returns:
516
Union[int, str]: Item ID
517
"""
518
519
def add_time_picker(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', payload_type: str = '', callback: Callable = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: dict = '', hour24: bool = '') -> Union[int, str]:
520
"""
521
Adds a time picker widget.
522
523
Parameters:
524
- default_value (dict): Initial time as {'hour': hour, 'min': minute, 'sec': second}
525
- hour24 (bool): Use 24-hour format
526
527
Returns:
528
Union[int, str]: Item ID
529
"""
530
```
531
532
## Usage Examples
533
534
### Creating a Form
535
536
```python
537
import dearpygui.dearpygui as dpg
538
539
def submit_form():
540
name = dpg.get_value("name_input")
541
age = dpg.get_value("age_input")
542
email = dpg.get_value("email_input")
543
newsletter = dpg.get_value("newsletter_check")
544
print(f"Name: {name}, Age: {age}, Email: {email}, Newsletter: {newsletter}")
545
546
with dpg.window(label="User Form", width=400, height=300):
547
dpg.add_text("Please fill out the form:")
548
dpg.add_separator()
549
550
dpg.add_input_text(label="Name", tag="name_input", hint="Enter your full name")
551
dpg.add_input_int(label="Age", tag="age_input", min_value=0, max_value=120)
552
dpg.add_input_text(label="Email", tag="email_input", hint="you@example.com")
553
dpg.add_checkbox(label="Subscribe to newsletter", tag="newsletter_check")
554
555
dpg.add_separator()
556
dpg.add_button(label="Submit", callback=submit_form)
557
```
558
559
### Color and Visual Controls
560
561
```python
562
def color_changed(sender, value):
563
print(f"Color changed to: {value}")
564
565
with dpg.window(label="Color Controls", width=300, height=400):
566
dpg.add_color_edit(label="Background Color",
567
default_value=(100, 150, 200, 255),
568
callback=color_changed)
569
570
dpg.add_color_picker(label="Accent Color",
571
default_value=(255, 100, 100, 255))
572
573
dpg.add_color_button(label="Preview",
574
default_value=(50, 255, 50, 255))
575
```
576
577
## Constants
578
579
Widget-related constants for configuration:
580
581
```python { .api }
582
# Direction constants
583
mvDir_None: int
584
mvDir_Left: int
585
mvDir_Right: int
586
mvDir_Up: int
587
mvDir_Down: int
588
589
# Input text flags
590
mvInputTextFlags_None: int
591
mvInputTextFlags_CharsDecimal: int
592
mvInputTextFlags_CharsHexadecimal: int
593
mvInputTextFlags_CharsUppercase: int
594
mvInputTextFlags_CharsNoBlank: int
595
mvInputTextFlags_AutoSelectAll: int
596
mvInputTextFlags_EnterReturnsTrue: int
597
mvInputTextFlags_Password: int
598
mvInputTextFlags_ReadOnly: int
599
600
# Combo flags
601
mvComboFlags_None: int
602
mvComboFlags_PopupAlignLeft: int
603
mvComboFlags_HeightSmall: int
604
mvComboFlags_HeightRegular: int
605
mvComboFlags_HeightLarge: int
606
mvComboFlags_HeightLargest: int
607
mvComboFlags_NoArrowButton: int
608
mvComboFlags_NoPreview: int
609
```