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

layout.mddocs/

Layout & Containers

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.

Capabilities

Windows

Primary containers for organizing interface elements.

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]:
    """
    Creates a window container.
    
    Parameters:
    - min_size, max_size (tuple): Size constraints
    - menubar (bool): Include menu bar
    - collapsed (bool): Start collapsed
    - autosize (bool): Auto-size to content
    - no_resize (bool): Disable resizing
    - no_title_bar (bool): Hide title bar
    - no_move (bool): Disable moving
    - no_scrollbar (bool): Disable scrollbars
    - no_collapse (bool): Disable collapse button
    - horizontal_scrollbar (bool): Enable horizontal scrolling
    - no_focus_on_appearing (bool): Don't focus when shown
    - no_bring_to_front_on_focus (bool): Don't bring to front
    - no_close (bool): Disable close button
    - no_background (bool): Transparent background
    - modal (bool): Modal window
    - popup (bool): Popup window
    - no_saved_settings (bool): Don't save window state
    - on_close (Callable): Close callback
    
    Returns:
    Union[int, str]: Window ID
    """

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]:
    """
    Creates an embedded child window with independent scrolling.
    
    Parameters:
    - border (bool): Show border around child
    - autosize_x, autosize_y (bool): Auto-size to content
    - no_scrollbar (bool): Disable scrollbars
    - horizontal_scrollbar (bool): Enable horizontal scrolling
    - menubar (bool): Include menu bar
    - no_scroll_with_mouse (bool): Disable mouse wheel scrolling
    - flattened_navigation (bool): Flatten keyboard navigation
    - always_use_window_padding (bool): Use window padding
    - resizable_x, resizable_y (bool): Enable resizing
    - always_auto_resize (bool): Always auto-resize
    - frame_style (bool): Use frame styling
    - auto_resize_x, auto_resize_y (bool): Auto-resize axes
    
    Returns:
    Union[int, str]: Child window ID
    """

Groups

Organizational containers for logical grouping of widgets.

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]:
    """
    Creates a group container for widget organization.
    
    Parameters:
    - horizontal (bool): Horizontal layout
    - horizontal_spacing (float): Spacing between horizontal items
    - xoffset (float): Horizontal offset
    
    Returns:
    Union[int, str]: Group ID
    """

Collapsible Sections

Expandable/collapsible content containers.

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]:
    """
    Creates a collapsible header section.
    
    Parameters:
    - closable (bool): Show close button
    - default_open (bool): Start expanded
    - open_on_double_click (bool): Expand on double-click
    - open_on_arrow (bool): Expand only on arrow click
    - leaf (bool): No expand/collapse arrow
    - bullet (bool): Show bullet point
    
    Returns:
    Union[int, str]: Header ID
    """

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]:
    """
    Creates a tree node for hierarchical navigation.
    
    Parameters:
    - default_open (bool): Start expanded
    - open_on_double_click (bool): Expand on double-click
    - open_on_arrow (bool): Expand only on arrow click
    - leaf (bool): No expand/collapse functionality
    - bullet (bool): Show bullet point
    - selectable (bool): Allow selection
    
    Returns:
    Union[int, str]: Tree node ID
    """

Tab Navigation

Tabbed interface containers for organizing related content.

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]:
    """
    Creates a tab bar container.
    
    Parameters:
    - reorderable (bool): Allow tab reordering
    - callback_data (Any): Data passed to callback
    
    Returns:
    Union[int, str]: Tab bar ID
    """

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]:
    """
    Creates a tab within a tab bar.
    
    Parameters:
    - closable (bool): Show close button
    - no_tooltip (bool): Disable tooltip
    - order_mode (int): Tab ordering mode
    
    Returns:
    Union[int, str]: Tab ID
    """

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]:
    """
    Creates a tab button for custom tab functionality.
    
    Parameters:
    - no_reorder (bool): Disable reordering
    - leading (bool): Position at start
    - trailing (bool): Position at end
    - no_tooltip (bool): Disable tooltip
    
    Returns:
    Union[int, str]: Tab button ID
    """

Menu Systems

Menu containers for application navigation and commands.

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]:
    """
    Creates a menu bar container.
    
    Returns:
    Union[int, str]: Menu bar ID
    """

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]:
    """
    Creates a dropdown menu.
    
    Returns:
    Union[int, str]: Menu ID
    """

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]:
    """
    Creates a menu item within a menu.
    
    Parameters:
    - shortcut (str): Keyboard shortcut text
    - check (bool): Show as checkbox
    - default_value (bool): Initial check state
    
    Returns:
    Union[int, str]: Menu item ID
    """

def add_viewport_menu_bar(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', show: bool = '') -> Union[int, str]:
    """
    Creates a viewport-level menu bar.
    
    Returns:
    Union[int, str]: Viewport menu bar ID
    """

Performance Containers

Specialized containers for performance optimization.

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]:
    """
    Creates a clipper for efficient rendering of large lists.
    
    Helper to manually clip large list of items. Increases performance 
    by not searching or drawing widgets outside of the clipped region.
    
    Returns:
    Union[int, str]: Clipper ID
    """

Usage Examples

Window Layout

import dearpygui.dearpygui as dpg

with dpg.window(label="Main Window", width=800, height=600, menubar=True):
    
    # Menu bar
    with dpg.menu_bar():
        with dpg.menu(label="File"):
            dpg.add_menu_item(label="New", shortcut="Ctrl+N")
            dpg.add_menu_item(label="Open", shortcut="Ctrl+O")
            dpg.add_menu_item(label="Save", shortcut="Ctrl+S")
        
        with dpg.menu(label="Edit"):
            dpg.add_menu_item(label="Undo", shortcut="Ctrl+Z")
            dpg.add_menu_item(label="Redo", shortcut="Ctrl+Y")
    
    # Main content area
    with dpg.group(horizontal=True):
        
        # Left sidebar
        with dpg.child_window(width=200, height=500, border=True):
            dpg.add_text("Sidebar")
            with dpg.collapsing_header(label="Settings", default_open=True):
                dpg.add_checkbox(label="Option 1")
                dpg.add_checkbox(label="Option 2")
                dpg.add_slider_float(label="Value")
        
        # Main content
        with dpg.child_window(width=550, height=500):
            with dpg.tab_bar():
                with dpg.tab(label="Tab 1"):
                    dpg.add_text("Content of tab 1")
                    dpg.add_button(label="Button 1")
                
                with dpg.tab(label="Tab 2"):
                    dpg.add_text("Content of tab 2")
                    dpg.add_input_text(label="Input")

Tree Navigation

import dearpygui.dearpygui as dpg

def item_selected(sender, value):
    print(f"Selected: {dpg.get_item_label(sender)}")

with dpg.window(label="Tree Navigation", width=400, height=600):
    
    with dpg.tree_node(label="Root Node", default_open=True):
        
        with dpg.tree_node(label="Branch 1", default_open=True):
            dpg.add_tree_node(label="Leaf 1.1", leaf=True, 
                            selectable=True, callback=item_selected)
            dpg.add_tree_node(label="Leaf 1.2", leaf=True, 
                            selectable=True, callback=item_selected)
        
        with dpg.tree_node(label="Branch 2"):
            dpg.add_tree_node(label="Leaf 2.1", leaf=True, 
                            selectable=True, callback=item_selected)
            
            with dpg.tree_node(label="Sub-branch 2.2"):
                dpg.add_tree_node(label="Leaf 2.2.1", leaf=True, 
                                selectable=True, callback=item_selected)

Responsive Layout

import dearpygui.dearpygui as dpg

def on_resize():
    # Get viewport size
    viewport_width = dpg.get_viewport_width()
    viewport_height = dpg.get_viewport_height()
    
    # Update window size
    dpg.configure_item("main_window", 
                      width=viewport_width - 20, 
                      height=viewport_height - 40)

with dpg.window(label="Responsive Layout", 
               tag="main_window", 
               width=800, height=600,
               no_close=True, no_collapse=True):
    
    with dpg.group(horizontal=True):
        
        # Resizable panels
        with dpg.child_window(width=300, height=500, 
                            resizable_x=True, border=True):
            dpg.add_text("Left Panel")
            dpg.add_text("Resize me!")
        
        with dpg.child_window(width=450, height=500, border=True):
            dpg.add_text("Right Panel")
            dpg.add_text("Auto-adjusts to available space")

# Set resize callback
dpg.set_viewport_resize_callback(lambda: on_resize())

Modal Dialog

import dearpygui.dearpygui as dpg

def show_modal():
    dpg.configure_item("modal_window", show=True)

def close_modal():
    dpg.configure_item("modal_window", show=False)

# Main window
with dpg.window(label="Main Window", width=400, height=300):
    dpg.add_text("Click the button to show modal dialog")
    dpg.add_button(label="Show Modal", callback=show_modal)

# Modal dialog (initially hidden)
with dpg.window(label="Modal Dialog", tag="modal_window", 
               modal=True, show=False, width=300, height=200,
               no_resize=True, no_move=True):
    dpg.add_text("This is a modal dialog")
    dpg.add_separator()
    
    with dpg.group(horizontal=True):
        dpg.add_button(label="OK", callback=close_modal)
        dpg.add_button(label="Cancel", callback=close_modal)

Constants

Layout and container-related constants:

# Window flags
mvWindowFlags_None: int
mvWindowFlags_NoTitleBar: int
mvWindowFlags_NoResize: int
mvWindowFlags_NoMove: int
mvWindowFlags_NoScrollbar: int
mvWindowFlags_NoScrollWithMouse: int
mvWindowFlags_NoCollapse: int
mvWindowFlags_AlwaysAutoResize: int
mvWindowFlags_NoBackground: int
mvWindowFlags_NoSavedSettings: int
mvWindowFlags_NoMouseInputs: int
mvWindowFlags_MenuBar: int
mvWindowFlags_HorizontalScrollbar: int
mvWindowFlags_NoFocusOnAppearing: int
mvWindowFlags_NoBringToFrontOnFocus: int
mvWindowFlags_AlwaysVerticalScrollbar: int
mvWindowFlags_AlwaysHorizontalScrollbar: int
mvWindowFlags_AlwaysUseWindowPadding: int
mvWindowFlags_NoNavInputs: int
mvWindowFlags_NoNavFocus: int
mvWindowFlags_UnsavedDocument: int

# Tree node flags
mvTreeNodeFlags_None: int
mvTreeNodeFlags_Selected: int
mvTreeNodeFlags_Framed: int
mvTreeNodeFlags_AllowItemOverlap: int
mvTreeNodeFlags_NoTreePushOnOpen: int
mvTreeNodeFlags_NoAutoOpenOnLog: int
mvTreeNodeFlags_DefaultOpen: int
mvTreeNodeFlags_OpenOnDoubleClick: int
mvTreeNodeFlags_OpenOnArrow: int
mvTreeNodeFlags_Leaf: int
mvTreeNodeFlags_Bullet: int
mvTreeNodeFlags_FramePadding: int
mvTreeNodeFlags_SpanAvailWidth: int
mvTreeNodeFlags_SpanFullWidth: int
mvTreeNodeFlags_NavLeftJumpsBackHere: int

# Tab bar flags
mvTabBarFlags_None: int
mvTabBarFlags_Reorderable: int
mvTabBarFlags_AutoSelectNewTabs: int
mvTabBarFlags_TabListPopupButton: int
mvTabBarFlags_NoCloseWithMiddleMouseButton: int
mvTabBarFlags_NoTabListScrollingButtons: int
mvTabBarFlags_NoTooltip: int
mvTabBarFlags_FittingPolicyResizeDown: int
mvTabBarFlags_FittingPolicyScroll: int

# Tab item flags
mvTabItemFlags_None: int
mvTabItemFlags_UnsavedDocument: int
mvTabItemFlags_SetSelected: int
mvTabItemFlags_NoCloseWithMiddleMouseButton: int
mvTabItemFlags_NoPushId: int
mvTabItemFlags_NoTooltip: int
mvTabItemFlags_NoReorder: int
mvTabItemFlags_Leading: int
mvTabItemFlags_Trailing: 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