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

widgets.mddocs/

Basic UI Widgets

Core interactive elements for building user interfaces. These widgets provide the fundamental building blocks for user interaction including input controls, display elements, selection widgets, and specialized controls.

Capabilities

Text Display

Display static and dynamic text content with formatting options.

def add_text(default_value: str = '', *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: Union[int, str] = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', wrap: int = '', bullet: bool = '', color: Union[List[int], Tuple[int, ...]] = '') -> Union[int, str]:
    """
    Adds text display widget.
    
    Parameters:
    - default_value (str): Text content to display
    - wrap (int): Pixel width for text wrapping (0 = no wrap)
    - bullet (bool): Display with bullet point
    - color (tuple): Text color as (r, g, b, a)
    
    Returns:
    Union[int, str]: Item ID
    """

Button Controls

Interactive buttons for user actions.

def add_button(*, 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 = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', small: bool = '', arrow: bool = '', direction: int = '', repeat: bool = '') -> Union[int, str]:
    """
    Adds a clickable button.
    
    Parameters:
    - small (bool): Use small button style
    - arrow (bool): Display as arrow button
    - direction (int): Arrow direction (mvDir_* constants)
    - repeat (bool): Generate repeated callbacks while held
    
    Returns:
    Union[int, str]: Item ID
    """

def add_image_button(texture_tag: Union[int, str], *, 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 = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', frame_padding: int = '', tint_color: Union[List[int], Tuple[int, ...]] = '', background_color: Union[List[int], Tuple[int, ...]] = '', uv_min: Union[List[float], Tuple[float, ...]] = '', uv_max: Union[List[float], Tuple[float, ...]] = '') -> Union[int, str]:
    """
    Adds an image button using a texture.
    
    Parameters:
    - texture_tag: Texture registry item to use
    - frame_padding (int): Padding around the image
    - tint_color (tuple): Image tint color
    - background_color (tuple): Button background color
    - uv_min, uv_max (tuple): UV coordinates for texture sampling
    
    Returns:
    Union[int, str]: Item ID
    """

Usage Example

import dearpygui.dearpygui as dpg

def button_callback():
    print("Button was clicked!")

# Create buttons
dpg.add_button(label="Click Me", callback=button_callback)
dpg.add_button(label="Small Button", small=True)
dpg.add_button(label="Arrow", arrow=True, direction=dpg.mvDir_Right)

Text Input Controls

Single and multi-line text input widgets with validation and formatting options.

def add_input_text(*, 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] = '', source: 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 = '', default_value: str = '', hint: str = '', multiline: bool = '', no_spaces: bool = '', uppercase: bool = '', tab_input: bool = '', decimal: bool = '', hexadecimal: bool = '', readonly: bool = '', password: bool = '', scientific: bool = '', on_enter: bool = '') -> Union[int, str]:
    """
    Adds a text input field.
    
    Parameters:
    - default_value (str): Initial text content
    - hint (str): Placeholder text
    - multiline (bool): Enable multiline editing
    - no_spaces (bool): Disallow space characters
    - uppercase (bool): Convert to uppercase
    - tab_input (bool): Allow tab character input
    - decimal (bool): Allow decimal numbers only
    - hexadecimal (bool): Allow hexadecimal input only
    - readonly (bool): Make read-only
    - password (bool): Hide input with dots
    - scientific (bool): Allow scientific notation
    - on_enter (bool): Trigger callback only on Enter key
    
    Returns:
    Union[int, str]: Item ID
    """

Usage Example

# Text input variants
dpg.add_input_text(label="Name", hint="Enter your name")
dpg.add_input_text(label="Password", password=True)
dpg.add_input_text(label="Notes", multiline=True, height=100)
dpg.add_input_text(label="Hex Value", hexadecimal=True, uppercase=True)

Numeric Input Controls

Specialized input controls for numeric values with type validation.

def add_input_int(*, 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] = '', source: 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 = '', default_value: int = '', min_value: int = '', max_value: int = '', min_clamped: bool = '', max_clamped: bool = '', step: int = '', step_fast: int = '', on_enter: bool = '', readonly: bool = '') -> Union[int, str]:
    """
    Adds an integer input field.
    
    Parameters:
    - default_value (int): Initial value
    - min_value, max_value (int): Value constraints
    - min_clamped, max_clamped (bool): Enforce constraints
    - step (int): Step size for increment/decrement
    - step_fast (int): Fast step size (Shift+click)
    - on_enter (bool): Callback only on Enter
    - readonly (bool): Make read-only
    
    Returns:
    Union[int, str]: Item ID
    """

def add_input_float(*, 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] = '', source: 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 = '', default_value: float = '', format: str = '', min_value: float = '', max_value: float = '', min_clamped: bool = '', max_clamped: bool = '', step: float = '', step_fast: float = '', on_enter: bool = '', readonly: bool = '') -> Union[int, str]:
    """
    Adds a float input field.
    
    Parameters:
    - default_value (float): Initial value
    - format (str): Display format (e.g., "%.3f")
    - min_value, max_value (float): Value constraints
    - min_clamped, max_clamped (bool): Enforce constraints
    - step (float): Step size for increment/decrement
    - step_fast (float): Fast step size (Shift+click)
    
    Returns:
    Union[int, str]: Item ID
    """

def add_input_double(*, 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] = '', source: 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 = '', default_value: float = '', format: str = '', min_value: float = '', max_value: float = '', min_clamped: bool = '', max_clamped: bool = '', step: float = '', step_fast: float = '', on_enter: bool = '', readonly: bool = '') -> Union[int, str]:
    """Adds a double precision float input field with same parameters as add_input_float."""

def add_input_floatx(*, 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] = '', source: 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 = '', default_value: Union[List[float], Tuple[float, ...]] = '', format: str = '', min_value: float = '', max_value: float = '', min_clamped: bool = '', max_clamped: bool = '', step: float = '', step_fast: float = '', on_enter: bool = '', readonly: bool = '', size: int = '') -> Union[int, str]:
    """
    Adds a multi-component float input (2-4 values).
    
    Parameters:
    - default_value (tuple): Initial values tuple
    - size (int): Number of components (2-4)
    
    Returns:
    Union[int, str]: Item ID
    """

def add_input_intx(*, 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] = '', source: 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 = '', default_value: Union[List[int], Tuple[int, ...]] = '', min_value: int = '', max_value: int = '', min_clamped: bool = '', max_clamped: bool = '', step: int = '', step_fast: int = '', on_enter: bool = '', readonly: bool = '', size: int = '') -> Union[int, str]:
    """
    Adds a multi-component integer input (2-4 values).
    
    Parameters:
    - default_value (tuple): Initial values tuple
    - size (int): Number of components (2-4)
    
    Returns:
    Union[int, str]: Item ID
    """

Slider Controls

Interactive sliders for numeric value selection with visual feedback.

def add_slider_int(*, 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] = '', source: 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 = '', default_value: int = '', vertical: bool = '', no_input: bool = '', clamped: bool = '', min_value: int = '', max_value: int = '', format: str = '') -> Union[int, str]:
    """
    Adds an integer slider.
    
    Parameters:
    - default_value (int): Initial value
    - vertical (bool): Vertical orientation
    - no_input (bool): Disable text input
    - clamped (bool): Clamp to min/max range
    - min_value, max_value (int): Range limits
    - format (str): Display format
    
    Returns:
    Union[int, str]: Item ID
    """

def add_slider_float(*, 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] = '', source: 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 = '', default_value: float = '', vertical: bool = '', no_input: bool = '', clamped: bool = '', min_value: float = '', max_value: float = '', format: str = '', power: float = '') -> Union[int, str]:
    """
    Adds a float slider.
    
    Parameters:
    - default_value (float): Initial value
    - vertical (bool): Vertical orientation
    - no_input (bool): Disable text input
    - clamped (bool): Clamp to min/max range
    - min_value, max_value (float): Range limits
    - format (str): Display format (e.g., "%.3f")
    - power (float): Power curve for non-linear scaling
    
    Returns:
    Union[int, str]: Item ID
    """

def add_slider_floatx(*, 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] = '', source: 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 = '', default_value: Union[List[float], Tuple[float, ...]] = '', no_input: bool = '', clamped: bool = '', min_value: float = '', max_value: float = '', format: str = '', power: float = '', size: int = '') -> Union[int, str]:
    """
    Adds a multi-component float slider (2-4 values).
    
    Parameters:
    - default_value (tuple): Initial values
    - size (int): Number of components (2-4)
    
    Returns:
    Union[int, str]: Item ID
    """

Drag Controls

Direct manipulation controls for precise numeric input.

def add_drag_float(*, 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] = '', source: 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 = '', default_value: float = '', format: str = '', speed: float = '', min_value: float = '', max_value: float = '', no_input: bool = '', clamped: bool = '') -> Union[int, str]:
    """
    Adds a draggable float input.
    
    Parameters:
    - default_value (float): Initial value
    - format (str): Display format
    - speed (float): Drag sensitivity
    - min_value, max_value (float): Range limits
    - no_input (bool): Disable text input
    - clamped (bool): Clamp to range
    
    Returns:
    Union[int, str]: Item ID
    """

def add_drag_int(*, 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] = '', source: 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 = '', default_value: int = '', format: str = '', speed: float = '', min_value: int = '', max_value: int = '', no_input: bool = '', clamped: bool = '') -> Union[int, str]:
    """Adds a draggable integer input with same parameters as add_drag_float."""

Selection Controls

Widgets for user selection including checkboxes, radio buttons, and dropdown lists.

def add_checkbox(*, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: 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 = '', default_value: bool = '') -> Union[int, str]:
    """
    Adds a checkbox for boolean selection.
    
    Parameters:
    - default_value (bool): Initial checked state
    
    Returns:
    Union[int, str]: Item ID
    """

def add_radio_button(items: Union[List[str], Tuple[str, ...]], *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', indent: int = '', parent: Union[int, str] = '', before: Union[int, str] = '', source: 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 = '', default_value: int = '', horizontal: bool = '') -> Union[int, str]:
    """
    Adds radio buttons for single selection from multiple options.
    
    Parameters:
    - items (list): List of option labels
    - default_value (int): Index of initially selected item
    - horizontal (bool): Horizontal layout
    
    Returns:
    Union[int, str]: Item ID
    """

def add_combo(items: Union[List[str], Tuple[str, ...]], *, 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] = '', source: 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 = '', default_value: str = '', popup_align_left: bool = '', no_arrow_button: bool = '', no_preview: bool = '', height_mode: int = '') -> Union[int, str]:
    """
    Adds a dropdown combo box.
    
    Parameters:
    - items (list): List of selectable options
    - default_value (str): Initially selected item
    - popup_align_left (bool): Align popup to left
    - no_arrow_button (bool): Hide dropdown arrow
    - no_preview (bool): Don't show selected item
    - height_mode (int): Popup height mode
    
    Returns:
    Union[int, str]: Item ID
    """

def add_listbox(items: Union[List[str], Tuple[str, ...]], *, 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] = '', source: 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 = '', default_value: int = '', num_items: int = '') -> Union[int, str]:
    """
    Adds a scrollable list box.
    
    Parameters:
    - items (list): List of selectable items
    - default_value (int): Index of initially selected item
    - num_items (int): Number of visible items
    
    Returns:
    Union[int, str]: Item ID
    """

Color Controls

Specialized widgets for color selection and editing.

def add_color_edit(default_value: Union[List[int], Tuple[int, ...]] = '', *, 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] = '', source: 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 = '', no_alpha: bool = '', no_picker: bool = '', no_options: bool = '', no_small_preview: bool = '', no_inputs: bool = '', no_tooltip: bool = '', no_label: bool = '', no_drag_drop: bool = '', alpha_bar: bool = '', alpha_preview: int = '', display_mode: int = '', display_type: int = '', input_mode: int = '') -> Union[int, str]:
    """
    Adds an RGBA color editor with preview.
    
    Parameters:
    - default_value (tuple): Initial color as (r, g, b, a)
    - no_alpha (bool): Hide alpha channel
    - no_picker (bool): Disable color picker popup
    - no_options (bool): Hide options menu
    - no_small_preview (bool): Hide small color preview
    - no_inputs (bool): Hide input fields
    - no_tooltip (bool): Disable tooltips
    - no_label (bool): Hide text label
    - no_drag_drop (bool): Disable drag and drop
    - alpha_bar (bool): Show alpha bar
    - alpha_preview (int): Alpha preview mode
    - display_mode (int): Color display mode
    - display_type (int): Color display type
    - input_mode (int): Input mode for values
    
    Returns:
    Union[int, str]: Item ID
    """

def add_color_picker(default_value: Union[List[int], Tuple[int, ...]] = '', *, 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] = '', source: 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 = '', no_alpha: bool = '', no_side_preview: bool = '', no_small_preview: bool = '', no_inputs: bool = '', no_tooltip: bool = '', no_label: bool = '', alpha_bar: bool = '', display_rgb: bool = '', display_hsv: bool = '', display_hex: bool = '', picker_mode: int = '', alpha_preview: int = '', display_type: int = '', input_mode: int = '') -> Union[int, str]:
    """
    Adds a full color picker widget.
    
    Parameters:
    - default_value (tuple): Initial color
    - no_side_preview (bool): Hide side preview
    - display_rgb (bool): Show RGB values
    - display_hsv (bool): Show HSV values  
    - display_hex (bool): Show hex values
    - picker_mode (int): Color picker style
    
    Returns:
    Union[int, str]: Item ID
    """

def add_color_button(default_value: Union[List[int], Tuple[int, ...]] = '', *, 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 = '', enabled: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', no_alpha: bool = '', no_border: bool = '', no_drag_drop: bool = '') -> Union[int, str]:
    """
    Adds a color button that displays a color swatch.
    
    Parameters:
    - default_value (tuple): Color to display
    - no_alpha (bool): Hide alpha channel
    - no_border (bool): Remove border
    - no_drag_drop (bool): Disable drag and drop
    
    Returns:
    Union[int, str]: Item ID
    """

Display Elements

Visual elements for information display and user feedback.

def add_image(texture_tag: Union[int, str], *, 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 = '', drag_callback: Callable = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', pmin: Union[List[int], Tuple[int, ...]] = '', pmax: Union[List[int], Tuple[int, ...]] = '', uv_min: Union[List[float], Tuple[float, ...]] = '', uv_max: Union[List[float], Tuple[float, ...]] = '', tint_color: Union[List[int], Tuple[int, ...]] = '', border_color: Union[List[int], Tuple[int, ...]] = '') -> Union[int, str]:
    """
    Adds an image display widget.
    
    Parameters:
    - texture_tag: Texture registry item to display
    - pmin, pmax (tuple): Display region
    - uv_min, uv_max (tuple): UV coordinates for texture sampling
    - tint_color (tuple): Image tint color
    - border_color (tuple): Border color
    
    Returns:
    Union[int, str]: Item ID
    """

def add_progress_bar(*, 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] = '', source: Union[int, str] = '', payload_type: str = '', drop_callback: Callable = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', default_value: float = '', overlay: str = '') -> Union[int, str]:
    """
    Adds a progress bar widget.
    
    Parameters:
    - default_value (float): Progress value (0.0 to 1.0)
    - overlay (str): Text overlay on progress bar
    
    Returns:
    Union[int, str]: Item ID
    """

def add_loading_indicator(*, 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 = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '', style: int = '', circle_count: int = '', speed: float = '', radius: float = '', thickness: float = '', color: Union[List[int], Tuple[int, ...]] = '', secondary_color: Union[List[int], Tuple[int, ...]] = '') -> Union[int, str]:
    """
    Adds an animated loading indicator.
    
    Parameters:
    - style (int): Loading animation style
    - circle_count (int): Number of circles in animation
    - speed (float): Animation speed
    - radius (float): Indicator radius
    - thickness (float): Line thickness
    - color (tuple): Primary color
    - secondary_color (tuple): Secondary color
    
    Returns:
    Union[int, str]: Item ID
    """

def add_separator(*, 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 = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '') -> Union[int, str]:
    """
    Adds a horizontal line separator.
    
    Returns:
    Union[int, str]: Item ID
    """

def add_spacer(*, 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] = '', show: bool = '', pos: Union[List[int], Tuple[int, ...]] = '', filter_key: str = '', tracked: bool = '', track_offset: float = '') -> Union[int, str]:
    """
    Adds invisible spacing for layout.
    
    Parameters:
    - width, height (int): Spacer dimensions
    
    Returns:
    Union[int, str]: Item ID
    """

Specialized Controls

Advanced and specialized widget types for specific use cases.

def add_selectable(*, 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] = '', source: 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 = '', default_value: bool = '', span_columns: bool = '', disable_popup_close: bool = '') -> Union[int, str]:
    """
    Adds a selectable text item that can be clicked to select/deselect.
    
    Parameters:
    - default_value (bool): Initial selection state
    - span_columns (bool): Span across table columns
    - disable_popup_close (bool): Prevent closing popups on selection
    
    Returns:
    Union[int, str]: Item ID
    """

def add_knob_float(*, 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] = '', source: 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 = '', default_value: float = '', min_value: float = '', max_value: float = '') -> Union[int, str]:
    """
    Adds a rotary knob control for float values.
    
    Parameters:
    - default_value (float): Initial knob value
    - min_value, max_value (float): Value range
    
    Returns:
    Union[int, str]: Item ID
    """

def add_3d_slider(*, 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] = '', source: 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 = '', default_value: Union[List[float], Tuple[float, ...]] = '', max_x: float = '', max_y: float = '', max_z: float = '', min_x: float = '', min_y: float = '', min_z: float = '', scale: float = '') -> Union[int, str]:
    """
    Adds a 3D box slider for three-dimensional value input.
    
    Parameters:
    - default_value (tuple): Initial (x, y, z) values
    - min_x, max_x (float): X-axis range
    - min_y, max_y (float): Y-axis range  
    - min_z, max_z (float): Z-axis range
    - scale (float): Visual scale factor
    
    Returns:
    Union[int, str]: Item ID
    """

def add_tooltip(parent: Union[int, str], *, label: str = '', user_data: Any = '', use_internal_label: bool = '', tag: Union[int, str] = '', show: bool = '', delay: float = '', hide_on_activity: bool = '') -> Union[int, str]:
    """
    Adds a tooltip that appears on hover over the parent item.
    
    Parameters:
    - parent: Item to attach tooltip to
    - delay (float): Delay before showing tooltip (seconds)
    - hide_on_activity (bool): Hide tooltip on user activity
    
    Returns:
    Union[int, str]: Item ID
    """

Date and Time Controls

Specialized widgets for date and time selection.

def add_date_picker(*, 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 = '', default_value: dict = '', level: int = '') -> Union[int, str]:
    """
    Adds a date picker widget.
    
    Parameters:
    - default_value (dict): Initial date as {'month_day': day, 'year': year, 'month': month}
    - level (int): Display level (day/month/year)
    
    Returns:
    Union[int, str]: Item ID
    """

def add_time_picker(*, 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 = '', default_value: dict = '', hour24: bool = '') -> Union[int, str]:
    """
    Adds a time picker widget.
    
    Parameters:
    - default_value (dict): Initial time as {'hour': hour, 'min': minute, 'sec': second}
    - hour24 (bool): Use 24-hour format
    
    Returns:
    Union[int, str]: Item ID
    """

Usage Examples

Creating a Form

import dearpygui.dearpygui as dpg

def submit_form():
    name = dpg.get_value("name_input")
    age = dpg.get_value("age_input") 
    email = dpg.get_value("email_input")
    newsletter = dpg.get_value("newsletter_check")
    print(f"Name: {name}, Age: {age}, Email: {email}, Newsletter: {newsletter}")

with dpg.window(label="User Form", width=400, height=300):
    dpg.add_text("Please fill out the form:")
    dpg.add_separator()
    
    dpg.add_input_text(label="Name", tag="name_input", hint="Enter your full name")
    dpg.add_input_int(label="Age", tag="age_input", min_value=0, max_value=120)
    dpg.add_input_text(label="Email", tag="email_input", hint="you@example.com")
    dpg.add_checkbox(label="Subscribe to newsletter", tag="newsletter_check")
    
    dpg.add_separator()
    dpg.add_button(label="Submit", callback=submit_form)

Color and Visual Controls

def color_changed(sender, value):
    print(f"Color changed to: {value}")

with dpg.window(label="Color Controls", width=300, height=400):
    dpg.add_color_edit(label="Background Color", 
                      default_value=(100, 150, 200, 255),
                      callback=color_changed)
    
    dpg.add_color_picker(label="Accent Color", 
                        default_value=(255, 100, 100, 255))
    
    dpg.add_color_button(label="Preview", 
                        default_value=(50, 255, 50, 255))

Constants

Widget-related constants for configuration:

# Direction constants
mvDir_None: int
mvDir_Left: int
mvDir_Right: int
mvDir_Up: int
mvDir_Down: int

# Input text flags
mvInputTextFlags_None: int
mvInputTextFlags_CharsDecimal: int
mvInputTextFlags_CharsHexadecimal: int
mvInputTextFlags_CharsUppercase: int
mvInputTextFlags_CharsNoBlank: int
mvInputTextFlags_AutoSelectAll: int
mvInputTextFlags_EnterReturnsTrue: int
mvInputTextFlags_Password: int
mvInputTextFlags_ReadOnly: int

# Combo flags
mvComboFlags_None: int
mvComboFlags_PopupAlignLeft: int
mvComboFlags_HeightSmall: int
mvComboFlags_HeightRegular: int
mvComboFlags_HeightLarge: int
mvComboFlags_HeightLargest: int
mvComboFlags_NoArrowButton: int
mvComboFlags_NoPreview: 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