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

tables.mddocs/

0

# Tables & Data Display

1

2

Structured data presentation with sortable columns, row highlighting, and cell-level customization for displaying tabular information. DearPyGui's table system provides efficient rendering of large datasets with interactive features.

3

4

## Capabilities

5

6

### Table Structure

7

8

```python { .api }

9

def add_table(*, label: str = '', columns: int = '', header_row: bool = '', resizable: bool = '', sortable: bool = '', hideable: bool = '', reorderable: bool = '', context_menu_in_body: bool = '', row_background: bool = '', borders_innerH: bool = '', borders_outerH: bool = '', borders_innerV: bool = '', borders_outerV: bool = '', policy: int = '', height: int = '', freeze_rows: int = '', freeze_columns: int = '', sort_multi: bool = '', sort_tristate: bool = '', scrollX: bool = '', scrollY: bool = '', tag: Union[int, str] = '', **kwargs) -> Union[int, str]:

10

"""

11

Creates a table container for structured data display.

12

13

Parameters:

14

- columns (int): Number of columns

15

- header_row (bool): Show header row

16

- resizable (bool): Allow column resizing

17

- sortable (bool): Enable column sorting

18

- hideable (bool): Allow column hiding

19

- reorderable (bool): Allow column reordering

20

- context_menu_in_body (bool): Enable context menu

21

- row_background (bool): Alternate row colors

22

- borders_* (bool): Border display options

23

- policy (int): Sizing policy

24

- freeze_rows, freeze_columns (int): Frozen rows/columns

25

- sort_multi (bool): Multi-column sorting

26

- sort_tristate (bool): Three-state sorting

27

- scrollX, scrollY (bool): Scrolling options

28

29

Returns:

30

Union[int, str]: Table ID

31

"""

32

33

def add_table_column(*, label: str = '', init_width_or_weight: float = '', default_hide: bool = '', default_sort: bool = '', width_stretch: bool = '', width_fixed: bool = '', no_resize: bool = '', no_reorder: bool = '', no_hide: bool = '', no_clip: bool = '', no_sort: bool = '', no_sort_ascending: bool = '', no_sort_descending: bool = '', no_header_width: bool = '', prefer_sort_ascending: bool = '', prefer_sort_descending: bool = '', indent_enable: bool = '', indent_disable: bool = '', tag: Union[int, str] = '', **kwargs) -> Union[int, str]:

34

"""

35

Adds a column to a table.

36

37

Parameters:

38

- init_width_or_weight (float): Initial column width

39

- default_hide (bool): Initially hidden

40

- default_sort (bool): Default sort column

41

- width_stretch (bool): Stretch to available space

42

- width_fixed (bool): Fixed width

43

- no_resize (bool): Disable resizing

44

- no_reorder (bool): Disable reordering

45

- no_hide (bool): Cannot be hidden

46

- no_clip (bool): Disable content clipping

47

- no_sort (bool): Disable sorting

48

- no_sort_ascending (bool): Disable ascending sort

49

- no_sort_descending (bool): Disable descending sort

50

- no_header_width (bool): Don't use header for width

51

- prefer_sort_ascending (bool): Prefer ascending sort

52

- prefer_sort_descending (bool): Prefer descending sort

53

- indent_enable (bool): Enable indentation

54

- indent_disable (bool): Disable indentation

55

56

Returns:

57

Union[int, str]: Column ID

58

"""

59

60

def add_table_row(*, height: float = '', min_row_height: float = '', tag: Union[int, str] = '', **kwargs) -> Union[int, str]:

61

"""

62

Adds a row to a table.

63

64

Parameters:

65

- height (float): Row height

66

- min_row_height (float): Minimum row height

67

68

Returns:

69

Union[int, str]: Row ID

70

"""

71

72

def add_table_cell(*, tag: Union[int, str] = '', **kwargs) -> Union[int, str]:

73

"""

74

Adds a cell to a table row.

75

76

Returns:

77

Union[int, str]: Cell ID

78

"""

79

```

80

81

### Table Operations

82

83

```python { .api }

84

def highlight_table_cell(table: Union[int, str], row: int, column: int, color: Union[List[int], Tuple[int, ...]] = '') -> None:

85

"""

86

Highlights a specific table cell.

87

88

Parameters:

89

- table: Table ID

90

- row, column (int): Cell coordinates

91

- color (tuple): Highlight color

92

"""

93

94

def highlight_table_column(table: Union[int, str], column: int, color: Union[List[int], Tuple[int, ...]] = '') -> None:

95

"""Highlights an entire table column."""

96

97

def highlight_table_row(table: Union[int, str], row: int, color: Union[List[int], Tuple[int, ...]] = '') -> None:

98

"""Highlights an entire table row."""

99

100

def unhighlight_table_cell(table: Union[int, str], row: int, column: int) -> None:

101

"""Removes cell highlighting."""

102

103

def unhighlight_table_column(table: Union[int, str], column: int) -> None:

104

"""Removes column highlighting."""

105

106

def unhighlight_table_row(table: Union[int, str], row: int) -> None:

107

"""Removes row highlighting."""

108

109

def is_table_cell_highlighted(table: Union[int, str], row: int, column: int) -> bool:

110

"""Checks if a cell is highlighted."""

111

112

def is_table_column_highlighted(table: Union[int, str], column: int) -> bool:

113

"""Checks if a column is highlighted."""

114

115

def is_table_row_highlighted(table: Union[int, str], row: int) -> bool:

116

"""Checks if a row is highlighted."""

117

118

def set_table_row_color(table: Union[int, str], row: int, color: Union[List[int], Tuple[int, ...]] = '') -> None:

119

"""Sets the background color for a table row."""

120

121

def unset_table_row_color(table: Union[int, str], row: int) -> None:

122

"""Removes row background color."""

123

```

124

125

## Usage Example

126

127

```python

128

import dearpygui.dearpygui as dpg

129

130

# Sample data

131

data = [

132

["John", "Doe", 30, "Engineer"],

133

["Jane", "Smith", 25, "Designer"],

134

["Bob", "Johnson", 35, "Manager"],

135

["Alice", "Brown", 28, "Developer"]

136

]

137

138

def cell_clicked(sender, cell_data):

139

row, col = cell_data

140

print(f"Clicked cell at row {row}, column {col}")

141

142

with dpg.window(label="Table Example", width=600, height=400):

143

144

with dpg.table(header_row=True, resizable=True, sortable=True,

145

borders_outerH=True, borders_innerV=True,

146

row_background=True):

147

148

# Add columns

149

dpg.add_table_column(label="First Name")

150

dpg.add_table_column(label="Last Name")

151

dpg.add_table_column(label="Age", width_fixed=True, init_width_or_weight=60)

152

dpg.add_table_column(label="Role")

153

154

# Add data rows

155

for i, row_data in enumerate(data):

156

with dpg.table_row():

157

for j, cell_data in enumerate(row_data):

158

with dpg.table_cell():

159

if isinstance(cell_data, int):

160

dpg.add_text(str(cell_data))

161

else:

162

dpg.add_selectable(label=cell_data,

163

callback=cell_clicked,

164

user_data=(i, j))

165

166

# Table controls

167

dpg.add_separator()

168

dpg.add_button(label="Highlight Row 0",

169

callback=lambda: dpg.highlight_table_row("table", 0, [255, 255, 0, 100]))

170

dpg.add_button(label="Clear Highlights",

171

callback=lambda: dpg.unhighlight_table_row("table", 0))

172

```

173

174

## Constants

175

176

```python { .api }

177

# Table flags

178

mvTableFlags_None: int

179

mvTableFlags_Resizable: int

180

mvTableFlags_Reorderable: int

181

mvTableFlags_Hideable: int

182

mvTableFlags_Sortable: int

183

mvTableFlags_NoSavedSettings: int

184

mvTableFlags_ContextMenuInBody: int

185

mvTableFlags_RowBg: int

186

mvTableFlags_BordersInnerH: int

187

mvTableFlags_BordersOuterH: int

188

mvTableFlags_BordersInnerV: int

189

mvTableFlags_BordersOuterV: int

190

mvTableFlags_BordersH: int

191

mvTableFlags_BordersV: int

192

mvTableFlags_BordersInner: int

193

mvTableFlags_BordersOuter: int

194

mvTableFlags_Borders: int

195

mvTableFlags_NoBordersInBody: int

196

mvTableFlags_NoBordersInBodyUntilResize: int

197

mvTableFlags_SizingFixedFit: int

198

mvTableFlags_SizingFixedSame: int

199

mvTableFlags_SizingStretchProp: int

200

mvTableFlags_SizingStretchSame: int

201

mvTableFlags_NoHostExtendX: int

202

mvTableFlags_NoHostExtendY: int

203

mvTableFlags_NoKeepColumnsVisible: int

204

mvTableFlags_PreciseWidths: int

205

mvTableFlags_NoClip: int

206

mvTableFlags_PadOuterX: int

207

mvTableFlags_NoPadOuterX: int

208

mvTableFlags_NoPadInnerX: int

209

mvTableFlags_ScrollX: int

210

mvTableFlags_ScrollY: int

211

mvTableFlags_SortMulti: int

212

mvTableFlags_SortTristate: int

213

214

# Table column flags

215

mvTableColumnFlags_None: int

216

mvTableColumnFlags_DefaultHide: int

217

mvTableColumnFlags_DefaultSort: int

218

mvTableColumnFlags_WidthStretch: int

219

mvTableColumnFlags_WidthFixed: int

220

mvTableColumnFlags_NoResize: int

221

mvTableColumnFlags_NoReorder: int

222

mvTableColumnFlags_NoHide: int

223

mvTableColumnFlags_NoClip: int

224

mvTableColumnFlags_NoSort: int

225

mvTableColumnFlags_NoSortAscending: int

226

mvTableColumnFlags_NoSortDescending: int

227

mvTableColumnFlags_NoHeaderWidth: int

228

mvTableColumnFlags_PreferSortAscending: int

229

mvTableColumnFlags_PreferSortDescending: int

230

mvTableColumnFlags_IndentEnable: int

231

mvTableColumnFlags_IndentDisable: int

232

233

# Table row flags

234

mvTableRowFlags_None: int

235

mvTableRowFlags_Headers: int

236

```