CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-dearpygui

DearPyGui is a modern, fast and powerful GUI framework for Python that provides an easy-to-use, dynamic, GPU-accelerated, cross-platform graphical user interface toolkit.

Pending
Overview
Eval results
Files

tables.mddocs/

Tables & Data Display

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.

Capabilities

Table Structure

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]:
    """
    Creates a table container for structured data display.
    
    Parameters:
    - columns (int): Number of columns
    - header_row (bool): Show header row
    - resizable (bool): Allow column resizing
    - sortable (bool): Enable column sorting
    - hideable (bool): Allow column hiding
    - reorderable (bool): Allow column reordering
    - context_menu_in_body (bool): Enable context menu
    - row_background (bool): Alternate row colors
    - borders_* (bool): Border display options
    - policy (int): Sizing policy
    - freeze_rows, freeze_columns (int): Frozen rows/columns
    - sort_multi (bool): Multi-column sorting
    - sort_tristate (bool): Three-state sorting
    - scrollX, scrollY (bool): Scrolling options
    
    Returns:
    Union[int, str]: Table ID
    """

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]:
    """
    Adds a column to a table.
    
    Parameters:
    - init_width_or_weight (float): Initial column width
    - default_hide (bool): Initially hidden
    - default_sort (bool): Default sort column
    - width_stretch (bool): Stretch to available space
    - width_fixed (bool): Fixed width
    - no_resize (bool): Disable resizing
    - no_reorder (bool): Disable reordering
    - no_hide (bool): Cannot be hidden
    - no_clip (bool): Disable content clipping
    - no_sort (bool): Disable sorting
    - no_sort_ascending (bool): Disable ascending sort
    - no_sort_descending (bool): Disable descending sort
    - no_header_width (bool): Don't use header for width
    - prefer_sort_ascending (bool): Prefer ascending sort
    - prefer_sort_descending (bool): Prefer descending sort
    - indent_enable (bool): Enable indentation
    - indent_disable (bool): Disable indentation
    
    Returns:
    Union[int, str]: Column ID
    """

def add_table_row(*, height: float = '', min_row_height: float = '', tag: Union[int, str] = '', **kwargs) -> Union[int, str]:
    """
    Adds a row to a table.
    
    Parameters:
    - height (float): Row height
    - min_row_height (float): Minimum row height
    
    Returns:
    Union[int, str]: Row ID
    """

def add_table_cell(*, tag: Union[int, str] = '', **kwargs) -> Union[int, str]:
    """
    Adds a cell to a table row.
    
    Returns:
    Union[int, str]: Cell ID
    """

Table Operations

def highlight_table_cell(table: Union[int, str], row: int, column: int, color: Union[List[int], Tuple[int, ...]] = '') -> None:
    """
    Highlights a specific table cell.
    
    Parameters:
    - table: Table ID
    - row, column (int): Cell coordinates
    - color (tuple): Highlight color
    """

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

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

def unhighlight_table_cell(table: Union[int, str], row: int, column: int) -> None:
    """Removes cell highlighting."""

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

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

def is_table_cell_highlighted(table: Union[int, str], row: int, column: int) -> bool:
    """Checks if a cell is highlighted."""

def is_table_column_highlighted(table: Union[int, str], column: int) -> bool:
    """Checks if a column is highlighted."""

def is_table_row_highlighted(table: Union[int, str], row: int) -> bool:
    """Checks if a row is highlighted."""

def set_table_row_color(table: Union[int, str], row: int, color: Union[List[int], Tuple[int, ...]] = '') -> None:
    """Sets the background color for a table row."""

def unset_table_row_color(table: Union[int, str], row: int) -> None:
    """Removes row background color."""

Usage Example

import dearpygui.dearpygui as dpg

# Sample data
data = [
    ["John", "Doe", 30, "Engineer"],
    ["Jane", "Smith", 25, "Designer"],
    ["Bob", "Johnson", 35, "Manager"],
    ["Alice", "Brown", 28, "Developer"]
]

def cell_clicked(sender, cell_data):
    row, col = cell_data
    print(f"Clicked cell at row {row}, column {col}")

with dpg.window(label="Table Example", width=600, height=400):
    
    with dpg.table(header_row=True, resizable=True, sortable=True, 
                   borders_outerH=True, borders_innerV=True, 
                   row_background=True):
        
        # Add columns
        dpg.add_table_column(label="First Name")
        dpg.add_table_column(label="Last Name") 
        dpg.add_table_column(label="Age", width_fixed=True, init_width_or_weight=60)
        dpg.add_table_column(label="Role")
        
        # Add data rows
        for i, row_data in enumerate(data):
            with dpg.table_row():
                for j, cell_data in enumerate(row_data):
                    with dpg.table_cell():
                        if isinstance(cell_data, int):
                            dpg.add_text(str(cell_data))
                        else:
                            dpg.add_selectable(label=cell_data, 
                                             callback=cell_clicked,
                                             user_data=(i, j))
    
    # Table controls
    dpg.add_separator()
    dpg.add_button(label="Highlight Row 0", 
                  callback=lambda: dpg.highlight_table_row("table", 0, [255, 255, 0, 100]))
    dpg.add_button(label="Clear Highlights", 
                  callback=lambda: dpg.unhighlight_table_row("table", 0))

Constants

# Table flags
mvTableFlags_None: int
mvTableFlags_Resizable: int
mvTableFlags_Reorderable: int
mvTableFlags_Hideable: int
mvTableFlags_Sortable: int
mvTableFlags_NoSavedSettings: int
mvTableFlags_ContextMenuInBody: int
mvTableFlags_RowBg: int
mvTableFlags_BordersInnerH: int
mvTableFlags_BordersOuterH: int
mvTableFlags_BordersInnerV: int
mvTableFlags_BordersOuterV: int
mvTableFlags_BordersH: int
mvTableFlags_BordersV: int
mvTableFlags_BordersInner: int
mvTableFlags_BordersOuter: int
mvTableFlags_Borders: int
mvTableFlags_NoBordersInBody: int
mvTableFlags_NoBordersInBodyUntilResize: int
mvTableFlags_SizingFixedFit: int
mvTableFlags_SizingFixedSame: int
mvTableFlags_SizingStretchProp: int
mvTableFlags_SizingStretchSame: int
mvTableFlags_NoHostExtendX: int
mvTableFlags_NoHostExtendY: int
mvTableFlags_NoKeepColumnsVisible: int
mvTableFlags_PreciseWidths: int
mvTableFlags_NoClip: int
mvTableFlags_PadOuterX: int
mvTableFlags_NoPadOuterX: int
mvTableFlags_NoPadInnerX: int
mvTableFlags_ScrollX: int
mvTableFlags_ScrollY: int
mvTableFlags_SortMulti: int
mvTableFlags_SortTristate: int

# Table column flags
mvTableColumnFlags_None: int
mvTableColumnFlags_DefaultHide: int
mvTableColumnFlags_DefaultSort: int
mvTableColumnFlags_WidthStretch: int
mvTableColumnFlags_WidthFixed: int
mvTableColumnFlags_NoResize: int
mvTableColumnFlags_NoReorder: int
mvTableColumnFlags_NoHide: int
mvTableColumnFlags_NoClip: int
mvTableColumnFlags_NoSort: int
mvTableColumnFlags_NoSortAscending: int
mvTableColumnFlags_NoSortDescending: int
mvTableColumnFlags_NoHeaderWidth: int
mvTableColumnFlags_PreferSortAscending: int
mvTableColumnFlags_PreferSortDescending: int
mvTableColumnFlags_IndentEnable: int
mvTableColumnFlags_IndentDisable: int

# Table row flags
mvTableRowFlags_None: int
mvTableRowFlags_Headers: int

Install with Tessl CLI

npx tessl i tessl/pypi-dearpygui

docs

advanced.md

application-lifecycle.md

drawing.md

events.md

index.md

layout.md

plotting.md

tables.md

widgets.md

tile.json