or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

advanced.mdapplication-lifecycle.mddrawing.mdevents.mdindex.mdlayout.mdplotting.mdtables.mdwidgets.md

widgets.mddocs/

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

```