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

layout.mddocs/

0

# Layout & Containers

1

2

Organizational elements for structuring user interfaces including windows, groups, collapsing sections, tabs, menus, and child containers. These elements provide the foundation for organizing and presenting UI components in a logical hierarchy.

3

4

## Capabilities

5

6

### Windows

7

8

Primary containers for organizing interface elements.

9

10

```python { .api }

11

def add_window(*, 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 = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', delay_search: bool = '', tracked: bool = '', track_offset: float = '', min_size: Union[List[int], Tuple[int, ...]] = '', max_size: Union[List[int], Tuple[int, ...]] = '', menubar: bool = '', collapsed: bool = '', autosize: bool = '', no_resize: bool = '', no_title_bar: bool = '', no_move: bool = '', no_scrollbar: bool = '', no_collapse: bool = '', horizontal_scrollbar: bool = '', no_focus_on_appearing: bool = '', no_bring_to_front_on_focus: bool = '', no_close: bool = '', no_background: bool = '', modal: bool = '', popup: bool = '', no_saved_settings: bool = '', on_close: Callable = '') -> Union[int, str]:

12

"""

13

Creates a window container.

14

15

Parameters:

16

- min_size, max_size (tuple): Size constraints

17

- menubar (bool): Include menu bar

18

- collapsed (bool): Start collapsed

19

- autosize (bool): Auto-size to content

20

- no_resize (bool): Disable resizing

21

- no_title_bar (bool): Hide title bar

22

- no_move (bool): Disable moving

23

- no_scrollbar (bool): Disable scrollbars

24

- no_collapse (bool): Disable collapse button

25

- horizontal_scrollbar (bool): Enable horizontal scrolling

26

- no_focus_on_appearing (bool): Don't focus when shown

27

- no_bring_to_front_on_focus (bool): Don't bring to front

28

- no_close (bool): Disable close button

29

- no_background (bool): Transparent background

30

- modal (bool): Modal window

31

- popup (bool): Popup window

32

- no_saved_settings (bool): Don't save window state

33

- on_close (Callable): Close callback

34

35

Returns:

36

Union[int, str]: Window ID

37

"""

38

39

def add_child_window(*, 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 = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', delay_search: bool = '', tracked: bool = '', track_offset: float = '', border: bool = '', autosize_x: bool = '', autosize_y: bool = '', no_scrollbar: bool = '', horizontal_scrollbar: bool = '', menubar: bool = '', no_scroll_with_mouse: bool = '', flattened_navigation: bool = '', always_use_window_padding: bool = '', resizable_x: bool = '', resizable_y: bool = '', always_auto_resize: bool = '', frame_style: bool = '', auto_resize_x: bool = '', auto_resize_y: bool = '') -> Union[int, str]:

40

"""

41

Creates an embedded child window with independent scrolling.

42

43

Parameters:

44

- border (bool): Show border around child

45

- autosize_x, autosize_y (bool): Auto-size to content

46

- no_scrollbar (bool): Disable scrollbars

47

- horizontal_scrollbar (bool): Enable horizontal scrolling

48

- menubar (bool): Include menu bar

49

- no_scroll_with_mouse (bool): Disable mouse wheel scrolling

50

- flattened_navigation (bool): Flatten keyboard navigation

51

- always_use_window_padding (bool): Use window padding

52

- resizable_x, resizable_y (bool): Enable resizing

53

- always_auto_resize (bool): Always auto-resize

54

- frame_style (bool): Use frame styling

55

- auto_resize_x, auto_resize_y (bool): Auto-resize axes

56

57

Returns:

58

Union[int, str]: Child window ID

59

"""

60

```

61

62

### Groups

63

64

Organizational containers for logical grouping of widgets.

65

66

```python { .api }

67

def add_group(*, 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] = '', payload_type: str = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', delay_search: bool = '', tracked: bool = '', track_offset: float = '', horizontal: bool = '', horizontal_spacing: float = '', xoffset: float = '') -> Union[int, str]:

68

"""

69

Creates a group container for widget organization.

70

71

Parameters:

72

- horizontal (bool): Horizontal layout

73

- horizontal_spacing (float): Spacing between horizontal items

74

- xoffset (float): Horizontal offset

75

76

Returns:

77

Union[int, str]: Group ID

78

"""

79

```

80

81

### Collapsible Sections

82

83

Expandable/collapsible content containers.

84

85

```python { .api }

86

def add_collapsing_header(*, 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 = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', delay_search: bool = '', tracked: bool = '', track_offset: float = '', closable: bool = '', default_open: bool = '', open_on_double_click: bool = '', open_on_arrow: bool = '', leaf: bool = '', bullet: bool = '') -> Union[int, str]:

87

"""

88

Creates a collapsible header section.

89

90

Parameters:

91

- closable (bool): Show close button

92

- default_open (bool): Start expanded

93

- open_on_double_click (bool): Expand on double-click

94

- open_on_arrow (bool): Expand only on arrow click

95

- leaf (bool): No expand/collapse arrow

96

- bullet (bool): Show bullet point

97

98

Returns:

99

Union[int, str]: Header ID

100

"""

101

102

def add_tree_node(*, 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 = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', delay_search: bool = '', tracked: bool = '', track_offset: float = '', default_open: bool = '', open_on_double_click: bool = '', open_on_arrow: bool = '', leaf: bool = '', bullet: bool = '', selectable: bool = '') -> Union[int, str]:

103

"""

104

Creates a tree node for hierarchical navigation.

105

106

Parameters:

107

- default_open (bool): Start expanded

108

- open_on_double_click (bool): Expand on double-click

109

- open_on_arrow (bool): Expand only on arrow click

110

- leaf (bool): No expand/collapse functionality

111

- bullet (bool): Show bullet point

112

- selectable (bool): Allow selection

113

114

Returns:

115

Union[int, str]: Tree node ID

116

"""

117

```

118

119

### Tab Navigation

120

121

Tabbed interface containers for organizing related content.

122

123

```python { .api }

124

def add_tab_bar(*, 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 = '', delay_search: bool = '', tracked: bool = '', track_offset: float = '', reorderable: bool = '', callback_data: Any = '') -> Union[int, str]:

125

"""

126

Creates a tab bar container.

127

128

Parameters:

129

- reorderable (bool): Allow tab reordering

130

- callback_data (Any): Data passed to callback

131

132

Returns:

133

Union[int, str]: Tab bar ID

134

"""

135

136

def add_tab(*, 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 = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', delay_search: bool = '', tracked: bool = '', track_offset: float = '', closable: bool = '', no_tooltip: bool = '', order_mode: int = '') -> Union[int, str]:

137

"""

138

Creates a tab within a tab bar.

139

140

Parameters:

141

- closable (bool): Show close button

142

- no_tooltip (bool): Disable tooltip

143

- order_mode (int): Tab ordering mode

144

145

Returns:

146

Union[int, str]: Tab ID

147

"""

148

149

def add_tab_button(*, 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 = '', no_reorder: bool = '', leading: bool = '', trailing: bool = '', no_tooltip: bool = '') -> Union[int, str]:

150

"""

151

Creates a tab button for custom tab functionality.

152

153

Parameters:

154

- no_reorder (bool): Disable reordering

155

- leading (bool): Position at start

156

- trailing (bool): Position at end

157

- no_tooltip (bool): Disable tooltip

158

159

Returns:

160

Union[int, str]: Tab button ID

161

"""

162

```

163

164

### Menu Systems

165

166

Menu containers for application navigation and commands.

167

168

```python { .api }

169

def add_menu_bar(*, 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 = '', delay_search: bool = '') -> Union[int, str]:

170

"""

171

Creates a menu bar container.

172

173

Returns:

174

Union[int, str]: Menu bar ID

175

"""

176

177

def add_menu(*, 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 = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', delay_search: bool = '', tracked: bool = '', track_offset: float = '') -> Union[int, str]:

178

"""

179

Creates a dropdown menu.

180

181

Returns:

182

Union[int, str]: Menu ID

183

"""

184

185

def add_menu_item(*, 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 = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', shortcut: str = '', check: bool = '', default_value: bool = '') -> Union[int, str]:

186

"""

187

Creates a menu item within a menu.

188

189

Parameters:

190

- shortcut (str): Keyboard shortcut text

191

- check (bool): Show as checkbox

192

- default_value (bool): Initial check state

193

194

Returns:

195

Union[int, str]: Menu item ID

196

"""

197

198

def add_viewport_menu_bar(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', show: bool = '') -> Union[int, str]:

199

"""

200

Creates a viewport-level menu bar.

201

202

Returns:

203

Union[int, str]: Viewport menu bar ID

204

"""

205

```

206

207

### Performance Containers

208

209

Specialized containers for performance optimization.

210

211

```python { .api }

212

def add_clipper(*, 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] = '', show: bool = '', delay_search: bool = '') -> Union[int, str]:

213

"""

214

Creates a clipper for efficient rendering of large lists.

215

216

Helper to manually clip large list of items. Increases performance

217

by not searching or drawing widgets outside of the clipped region.

218

219

Returns:

220

Union[int, str]: Clipper ID

221

"""

222

```

223

224

## Usage Examples

225

226

### Window Layout

227

228

```python

229

import dearpygui.dearpygui as dpg

230

231

with dpg.window(label="Main Window", width=800, height=600, menubar=True):

232

233

# Menu bar

234

with dpg.menu_bar():

235

with dpg.menu(label="File"):

236

dpg.add_menu_item(label="New", shortcut="Ctrl+N")

237

dpg.add_menu_item(label="Open", shortcut="Ctrl+O")

238

dpg.add_menu_item(label="Save", shortcut="Ctrl+S")

239

240

with dpg.menu(label="Edit"):

241

dpg.add_menu_item(label="Undo", shortcut="Ctrl+Z")

242

dpg.add_menu_item(label="Redo", shortcut="Ctrl+Y")

243

244

# Main content area

245

with dpg.group(horizontal=True):

246

247

# Left sidebar

248

with dpg.child_window(width=200, height=500, border=True):

249

dpg.add_text("Sidebar")

250

with dpg.collapsing_header(label="Settings", default_open=True):

251

dpg.add_checkbox(label="Option 1")

252

dpg.add_checkbox(label="Option 2")

253

dpg.add_slider_float(label="Value")

254

255

# Main content

256

with dpg.child_window(width=550, height=500):

257

with dpg.tab_bar():

258

with dpg.tab(label="Tab 1"):

259

dpg.add_text("Content of tab 1")

260

dpg.add_button(label="Button 1")

261

262

with dpg.tab(label="Tab 2"):

263

dpg.add_text("Content of tab 2")

264

dpg.add_input_text(label="Input")

265

```

266

267

### Tree Navigation

268

269

```python

270

import dearpygui.dearpygui as dpg

271

272

def item_selected(sender, value):

273

print(f"Selected: {dpg.get_item_label(sender)}")

274

275

with dpg.window(label="Tree Navigation", width=400, height=600):

276

277

with dpg.tree_node(label="Root Node", default_open=True):

278

279

with dpg.tree_node(label="Branch 1", default_open=True):

280

dpg.add_tree_node(label="Leaf 1.1", leaf=True,

281

selectable=True, callback=item_selected)

282

dpg.add_tree_node(label="Leaf 1.2", leaf=True,

283

selectable=True, callback=item_selected)

284

285

with dpg.tree_node(label="Branch 2"):

286

dpg.add_tree_node(label="Leaf 2.1", leaf=True,

287

selectable=True, callback=item_selected)

288

289

with dpg.tree_node(label="Sub-branch 2.2"):

290

dpg.add_tree_node(label="Leaf 2.2.1", leaf=True,

291

selectable=True, callback=item_selected)

292

```

293

294

### Responsive Layout

295

296

```python

297

import dearpygui.dearpygui as dpg

298

299

def on_resize():

300

# Get viewport size

301

viewport_width = dpg.get_viewport_width()

302

viewport_height = dpg.get_viewport_height()

303

304

# Update window size

305

dpg.configure_item("main_window",

306

width=viewport_width - 20,

307

height=viewport_height - 40)

308

309

with dpg.window(label="Responsive Layout",

310

tag="main_window",

311

width=800, height=600,

312

no_close=True, no_collapse=True):

313

314

with dpg.group(horizontal=True):

315

316

# Resizable panels

317

with dpg.child_window(width=300, height=500,

318

resizable_x=True, border=True):

319

dpg.add_text("Left Panel")

320

dpg.add_text("Resize me!")

321

322

with dpg.child_window(width=450, height=500, border=True):

323

dpg.add_text("Right Panel")

324

dpg.add_text("Auto-adjusts to available space")

325

326

# Set resize callback

327

dpg.set_viewport_resize_callback(lambda: on_resize())

328

```

329

330

### Modal Dialog

331

332

```python

333

import dearpygui.dearpygui as dpg

334

335

def show_modal():

336

dpg.configure_item("modal_window", show=True)

337

338

def close_modal():

339

dpg.configure_item("modal_window", show=False)

340

341

# Main window

342

with dpg.window(label="Main Window", width=400, height=300):

343

dpg.add_text("Click the button to show modal dialog")

344

dpg.add_button(label="Show Modal", callback=show_modal)

345

346

# Modal dialog (initially hidden)

347

with dpg.window(label="Modal Dialog", tag="modal_window",

348

modal=True, show=False, width=300, height=200,

349

no_resize=True, no_move=True):

350

dpg.add_text("This is a modal dialog")

351

dpg.add_separator()

352

353

with dpg.group(horizontal=True):

354

dpg.add_button(label="OK", callback=close_modal)

355

dpg.add_button(label="Cancel", callback=close_modal)

356

```

357

358

## Constants

359

360

Layout and container-related constants:

361

362

```python { .api }

363

# Window flags

364

mvWindowFlags_None: int

365

mvWindowFlags_NoTitleBar: int

366

mvWindowFlags_NoResize: int

367

mvWindowFlags_NoMove: int

368

mvWindowFlags_NoScrollbar: int

369

mvWindowFlags_NoScrollWithMouse: int

370

mvWindowFlags_NoCollapse: int

371

mvWindowFlags_AlwaysAutoResize: int

372

mvWindowFlags_NoBackground: int

373

mvWindowFlags_NoSavedSettings: int

374

mvWindowFlags_NoMouseInputs: int

375

mvWindowFlags_MenuBar: int

376

mvWindowFlags_HorizontalScrollbar: int

377

mvWindowFlags_NoFocusOnAppearing: int

378

mvWindowFlags_NoBringToFrontOnFocus: int

379

mvWindowFlags_AlwaysVerticalScrollbar: int

380

mvWindowFlags_AlwaysHorizontalScrollbar: int

381

mvWindowFlags_AlwaysUseWindowPadding: int

382

mvWindowFlags_NoNavInputs: int

383

mvWindowFlags_NoNavFocus: int

384

mvWindowFlags_UnsavedDocument: int

385

386

# Tree node flags

387

mvTreeNodeFlags_None: int

388

mvTreeNodeFlags_Selected: int

389

mvTreeNodeFlags_Framed: int

390

mvTreeNodeFlags_AllowItemOverlap: int

391

mvTreeNodeFlags_NoTreePushOnOpen: int

392

mvTreeNodeFlags_NoAutoOpenOnLog: int

393

mvTreeNodeFlags_DefaultOpen: int

394

mvTreeNodeFlags_OpenOnDoubleClick: int

395

mvTreeNodeFlags_OpenOnArrow: int

396

mvTreeNodeFlags_Leaf: int

397

mvTreeNodeFlags_Bullet: int

398

mvTreeNodeFlags_FramePadding: int

399

mvTreeNodeFlags_SpanAvailWidth: int

400

mvTreeNodeFlags_SpanFullWidth: int

401

mvTreeNodeFlags_NavLeftJumpsBackHere: int

402

403

# Tab bar flags

404

mvTabBarFlags_None: int

405

mvTabBarFlags_Reorderable: int

406

mvTabBarFlags_AutoSelectNewTabs: int

407

mvTabBarFlags_TabListPopupButton: int

408

mvTabBarFlags_NoCloseWithMiddleMouseButton: int

409

mvTabBarFlags_NoTabListScrollingButtons: int

410

mvTabBarFlags_NoTooltip: int

411

mvTabBarFlags_FittingPolicyResizeDown: int

412

mvTabBarFlags_FittingPolicyScroll: int

413

414

# Tab item flags

415

mvTabItemFlags_None: int

416

mvTabItemFlags_UnsavedDocument: int

417

mvTabItemFlags_SetSelected: int

418

mvTabItemFlags_NoCloseWithMiddleMouseButton: int

419

mvTabItemFlags_NoPushId: int

420

mvTabItemFlags_NoTooltip: int

421

mvTabItemFlags_NoReorder: int

422

mvTabItemFlags_Leading: int

423

mvTabItemFlags_Trailing: int

424

```