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
```