Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

Overview
Dear PyGui

(This library is available under a free and permissive license however, if you Enjoy Dear PyGui please consider becoming a Sponsor)

Python Version PYPI Downloads Sponsors

build status static-analysis Build status

Dear PyGui is a simple to use (but powerful) Python GUI framework. Dear PyGui provides a wrapping of Dear ImGui which simulates a traditional retained mode GUI (as opposed to Dear ImGui's immediate mode paradigm).


Themes

Dear PyGui is fundamentally different than other Python GUI frameworks. Under the hood, Dear PyGui uses the immediate mode paradigm and your computer's GPU to facilitate extremely dynamic interfaces. Dear PyGui is currently supported on the following platforms:

Platform Rendering API
Windows 10 DirectX 11
macOs Metal
Linux OpenGL 3

In the same manner Dear ImGui provides a simple way to create tools for game developers, Dear PyGui provides a simple way for python developers to create quick and powerful GUIs for scripts.

Installing - Usage - Resources - Support
Features - Sponsors - Credits - License

Installation


Ensure you have at least Python 3.6 64bit.

pip install dearpygui
or
pip3 install dearpygui

Resources


  • Documentation comprehensive documentaion, tutorials, and examples.
  • Development Roadmap future features and changes.
  • Internal Documentation: Run the show_documentation command from within the library to view an reference guide.
  • Complete Demo: You can also view a mostly complete showcase of Dear PyGui by running the show_demo command found in dearpygui.demo.

Usage


Using Dear PyGui is a simple as creating a python script like the one below:

Code:

from dearpygui import core, simple

def save_callback(sender, data):
    print("Save Clicked")

with simple.window("Example Window"):
    core.add_text("Hello world")
    core.add_button("Save", callback=save_callback)
    core.add_input_text("string")
    core.add_slider_float("float")

core.start_dearpygui()

Result:
BasicUsageExample

Some Features


Plotting/Graphing

Dear PyGui includes a plotting API (ImPlot Wrapping)

Themes

Dear PyGui currently includes 10 themes and you can create your own:
Themes

Canvas

Dear PyGui includes a drawing API to create custom drawings, plot, and even 2D games.
BasicUsageExample

Tools

Dear PyGui includes several tools to help developers with DearPyGui app development including built-in documentation, logging, source viewer, and other tools:
BasicUsageExample

Support

If you are having issues or want to help, here are some places you can go:

Sponsors


If you enjoy Dear PyGui please consider becoming a sponsor.

Ongoing Dear PyGui development is financially supported by users and private sponsors.

These include:

Thank you to all other sponsors for keeping this project moving forward!

Credits


Developed by Jonathan Hoffstadt, Preston Cothren, and every direct or indirect contributor.

Omar Cornut for all his incredible work on Dear ImGui.

Evan Pezent for all his work on ImPlot

License


Dear PyGui is licensed under the MIT License.

Issues
  • Can't Run Provided Sample Code

    Can't Run Provided Sample Code

    Describe the bug When attempting to run the code found at https://github.com/RaylockLLC/DearPyGui#usage, an error is given:

    Traceback (most recent call last): File "c:\Users\dylan\Desktop\Programming\dpygui\tempCodeRunnerFile.py", line 1, in from dearpygui.dearpygui import * ImportError: DLL load failed while importing dearpygui: The specified module could not be found.

    To Reproduce Steps to reproduce the behavior:

    1. Copy code, paste code
    2. Run
    3. See error

    Additional context Python Version: 3.8.1 DearPyGui Version: 0.1.0a21 Code Editor: VSCode Platform: Windows 10 v 1909 (18363.959)

    I tried a simple uninstall-reinstall, but the behavior wasn't any different. Very neat project, looking forward to seeing this grow. Hello from Reddit!

    opened by RobotNetwork 43
  • could Not Find a version that satisfies the requirement (aka Unable to install in Macintosh Python 3.91 (Big Sur))

    could Not Find a version that satisfies the requirement (aka Unable to install in Macintosh Python 3.91 (Big Sur))

    This may affect other 3.9x install platforms? I was only able to test Python 3.91 Macintosh.

    DearPyGui version - v0.6.166+ (5c74d61?) downloaded directly from Github ~14:00ish on 2/10/2021

    Mac OS X Big Sur 11.2.1 Python 3.9.1 (default, Feb 2 2021, 22:54:59) [Clang 12.0.0 (clang-1200.0.32.29)] on darwin

    Unable to use PIP to install dearpyGui.

    (intelworking) [email protected] scripts % pip install dearpygui
    ERROR: Could not find a version that satisfies the requirement dearpygui
    ERROR: No matching distribution found for dearpygui
    

    Looking at verbose mode, "Skipping link: none of the wheel's tags match:" is plastered on all of the links.

    Comparing it to the tags produced below, so the arm64, and universal2 tags.

    (intelworking) [email protected] scripts % python3 -c"from packaging import tags; print('\n'.join([str(t) for t in tags.sys_tags()]))" |head -5 cp39-cp39-macosx_11_0_arm64 cp39-cp39-macosx_11_0_universal2 cp39-cp39-macosx_10_16_universal2 cp39-cp39-macosx_10_15_universal2 cp39-cp39-macosx_10_14_universal2

    I have tried this in Rosetta 2, as well as in M1 Native. I have had no issues with python libraries in Rosetta 2, including Cryptopgraphy, PyMuPDF, etc. So Rosetta2 (Intel Translation) mode does not appear to be the issue.

    I'll be happy to assist in troubleshooting, testing, etc.

    type: feature platform: MacOS type: build priority: high 
    opened by bschollnick 36
  • Import issue on SOME Windows systems

    Import issue on SOME Windows systems

    Version of Dear PyGui: Latest (Tested on 0.4.0 and others as well)

    Operating System: Windows 8/10

    My Issue/Question

    Lately I was asked by colleagues who use Windows to share with them the app I was developing using this DPG. I packaged the app for them and some reported that it didn't work, while others had no issue whatsoever. Some were running Windows 8 and others Windows 10. Long story short, after hours of trying to figure this out I grabbed a computer I had lying around and fired up Windows on it. It didn't work on it so I installed Python 3.7.9 and DPG. Simply running the Python console I got the following error:

    >>> import dearpygui.core
    Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
    ImportError: DLL load failed: The specified module could not be found.
    

    Bingo!

    The main culprit was DX11 so I ran dxdiag but all seemed correct and all DX features were enabled.

    This might be a bug of the main lib, but since I used DPG I thought I'd go here first. Also, @hoffstadt is an awesome maintainer :)

    platform: Windows 
    opened by wallace11 33
  • run_async_function is prohibitively slow

    run_async_function is prohibitively slow

    DearPyGui Version: 0.6.42 Operating System: Windows 10

    run_async_function() can be extremely slow depending on what you ask it to do. This can make DPG unusable for computation intensive applications, since, for example, loading data using a DPG gui leaves you either locking up the gui completely (by not using run_async) or waiting forever for the data to load (when using run_async) where a script would load it much quicker.

    Here is a minimal example where a call to print grinds run_async_function to a halt:

    from dearpygui.core import *
    from dearpygui.simple import *
    import time
    
    def slow_callback(sender, data):
    	c = 0
    	for i in range(0, 1024):
    		print(i)
    		c += i
    
    t1 = time.time()
    slow_callback(None, None)
    t2 = time.time()
    print('main thread time:', t2-t1)
    
    set_threadpool_high_performance()
    t1 = time.time()
    run_async_function(slow_callback, None, return_handler=lambda s, d: print('dpg thread time:', time.time() - t1, flush=True))
    start_dearpygui()
    

    output:

    main thread time: 0.007995367050170898
    dpg thread time: 16.691800117492676
    

    This also occurs for me when manipulating numpy arrays. I haven't tried lists and other pythonic statements yet (related issues: #349 #370 )

    state: inactive 
    opened by mef51 29
  • Window never appears if created with option no_focus_on_appearing on second time

    Window never appears if created with option no_focus_on_appearing on second time

    Version of Dear PyGui

    Version: 0.8.16 Operating System: Windows 10

    My Issue/Question

    Window never appears if created with option no_focus_on_appearing=True on second time i.e. window get created but never comes into foreground. Earlier i was thinking after setting up value rendering stop but that is not the case.

    image

    image

    To Reproduce

    Steps to reproduce the behavior:

    1. Run the code

    Expected behavior

    post setting up value by button on typing window should created and appear as well just it should not have the focus. Currently window is created but not appearing.

    Screenshots/Video

    XXX (you can drag files here)

    Standalone, minimal, complete and verifiable example

    import dearpygui.dearpygui as dpg
    
    def childwindow(sender):
        if dpg.does_item_exist(3):
            dpg.add_text('Child Window exist', parent=1)
        with dpg.window(label='Child Window', id=3, width=150, height=100, pos=(160,100), no_focus_on_appearing=True):
            dpg.add_text('Child Window', id=36)
    
    def setvalue():
        dpg.set_value(item=2,value='Value has been set')
        dpg.delete_item(3)
    
    with dpg.window(label='Main Window', id=1, width=500, height=500):
        dpg.add_input_text(label='window button', id=2, callback=childwindow)
        dpg.add_button(label='button', id=4, callback=setvalue)
    
    dpg.start_dearpygui()
    
    
    opened by chauhan-pawan 28
  • Abort:  Closing a window while using the Debug window to view its info

    Abort: Closing a window while using the Debug window to view its info

    9C99D890-F0E6-4103-A3FD-404FA347C80A

    I was viewing the info for the "View Console" window in the debug window and click the X to close it. That aborted the whole program. I tested it without using the debug window and that works fine.

    Here is the MacOS error:

    56CEC5D5-FC90-402C-B0C4-894ACE622D92

    opened by dkluis 24
  • dearpygui function cannot read/write txt file

    dearpygui function cannot read/write txt file

    I try to read & write the text file thru dearpygui widget button callback, but fail. if I code below directly in python, it works with open('setting.txt','r') as wf: content = wf.readlines() print(content)

    but if code as below, I cannot read/write the content from/to txt file from dearpygui.dearpygui import *

    def savesetting(sender,data): with open('setting.txt','r') as wf: # wf.write("setting") content = wf.readlines() print(content)

    add_button("save setting",callback=savesetting)

    start_dearpygui()

    opened by benhzb 23
  • ModuleNotFoundError

    ModuleNotFoundError

    **Version of Dear PyGui: **

    Version: 0.1.0b12

    OS

    Operating System: Windows 10

    My Issue/Question I get a ModuleNotFoundError when i try to start the hello world example.

    ModuleNotFoundError: No module named 'dearpygui.dearpygui'; 'dearpygui' is not a package

    To Reproduce

    I installed through pip with pip install dearpygui

    I firstly did try to start with an old environment (python 3.7.3) this had the mentioned result. Afterwards I made a fresh environment with python 3.7.7 and this had the same result.

    Standalone, minimal, complete and verifiable example:

    from dearpygui.dearpygui import *
    
    add_text("Hello world")
    add_button("Save", callback="save_callback")
    add_input_text("string")
    add_slider_float("float")
    
    def save_callback(sender, data):
        print("Save Clicked")
    
    start_dearpygui()
    
    state: question 
    opened by radikalliberal 21
  • Future Higher Level API

    Future Higher Level API

    Have you considered implementing a declarative API similar to Flutter? This may or may not be a good fit for this project, but I think it's at least worth considering.

    opened by JordyScript 21
  • Menu Accelerator Keys

    Menu Accelerator Keys

    Is your feature request related to a problem? Please describe. when using set_key_press_callback() all keys are registered to the handler and callback

    Describe the solution you'd like it would be useful to keys to be registered by name and also have * or the default to be the all keys

    Additional context This should also be considered on set_key_down_callback() & set_key_relese_callback()

    type: feature 
    opened by Pcothren 20
  • Window is flickering when playing animation

    Window is flickering when playing animation

    Version of Dear PyGui

    Version: 1.3.1 (same issue persists in 1.3.0) Operating System: Arch Linux

    My Issue/Question

    I've tried to use the Raccoon Music player - https://github.com/bandit-masked/raccoon and when I try to use it, the animations are flickering. I've contacted the developer and they said this might be a DPG bug.

    To Reproduce

    1. open app,
    2. start play (that start the animations (look at the video posted down there)
    3. pres stop
    4. press "close area" to close application.

    Expected behavior

    I expect animations to be smooth.

    Video

    https://www.youtube.com/watch?v=lnBaV-iZxE8

    state: pending type: bug 
    opened by christooss 2
  • Viewport stuck after closing when executing blocking instructions afterwards on MacOS

    Viewport stuck after closing when executing blocking instructions afterwards on MacOS

    OS : MacOS 12.1 Machine : MacBook Air (13-inch, Early 2015) 1,6 GHz Dual-Core Intel Core i5 Python : 3.10.1 DearPyGui : 1.3.1

    import dearpygui.dearpygui as dpg
    
    dpg.create_context()
    dpg.create_viewport()
    # here happens the DPG magic :)
    dpg.setup_dearpygui()
    dpg.show_viewport()
    dpg.start_dearpygui()
    dpg.destroy_context()
    
    # Then I'd like the viewport to close and do something like
    a = input() # this is what I name a "blocking instruction"
    # but DPG won't close
    
    state: pending type: bug 
    opened by UGLimusic 1
  • Would be cool if you create a GUI window creator/editor

    Would be cool if you create a GUI window creator/editor

    Is your feature request related to a problem? Please describe. I think the syntax is a bit hard to understand for example we have to write about 5 lines for the base program (without a window) and there are not a lot of video tutorials out there yet, btw I think if you take more of the approuch PySimpleGUI did it would be the best GUI out there I can see the potential for this library.

    Describe the solution you'd like I'd like a GUI editor for windows like PyQt5 has

    Describe alternatives you've considered none

    Additional context none

    state: pending 
    opened by KingOfTNT10 0
  • [Bug] `min_size`/`max_size` for window items are cast as a sequence of floats in `get_item_configuration`

    [Bug] `min_size`/`max_size` for window items are cast as a sequence of floats in `get_item_configuration`

    DearPyGui v1.3.1 Operating System: Windows 10

    Issue

    The list of values returned for min_size and max_size for window items in get_item_configuration are floats. However, add_window, window, and configure_item commands enforce a list/tuple of integers. The type hint for add_window and window also specify sequences of integers.

    Example

    from dearpygui import dearpygui as dpg
    
    
    dpg.create_context()
    dpg.create_viewport()
    dpg.setup_dearpygui()
    
    
    with dpg.window(min_size=[50, 50], max_size=[500, 500]) as window:
        ...
    
    win_config = dpg.get_item_configuration(window)
    print(win_config["min_size"], win_config["max_size"])  # `[50.0, 50.0] [500.0, 500.0]`
    
    

    Adding the following will result in a SystemError:

    
    # raises `SystemError`
    with dpg.window(min_size=win_config["min_size"]):
        ...
    
    
    state: ready priority: medium type: bug 
    opened by Atlamillias 1
  • Updating tick labels with set_axis_ticks does not work properly, labels corrupted

    Updating tick labels with set_axis_ticks does not work properly, labels corrupted

    Calling repetitively set_axis_ticks

    Here is an example that replicates the error. Press buttons Inc or Dec to increase the number of groups, for which then new tick labels are set via set_axis_ticks.

    You will see that the label texts get corrupted.

    Is there another way to re-generate labels dynamically when the data changes?

    import dearpygui.dearpygui as dpg
    import asyncio
    import numpy as np
    
    
    class BarPlot:
        def __init__(self):
            self.m = 5
            self.n = 2
            self.data = np.random.rand(self.n, self.m)
            self.labels_coords = None
    
        def offsets(self):
            return (self.m + 1)*(np.cumsum(np.ones(self.n)) - 1)
    
        def labels(self, offsets):
            assert(len(offsets) == self.n)
            texts = [f"Group {i}" for i in range(self.n)]
            return tuple(zip(texts, list(offsets + self.m / 2)))
    
        def update(self):
            self.data = np.random.rand(self.n, self.m)
            print(f"update {self.n}x{self.m} data:\n {self.data}")
            offsets = self.offsets()
            for i in range(self.m):
                ys = list(self.data[:, i])
                xs = list(offsets + i)
                dpg.set_value(f"series-{i}", [xs, ys])
            dpg.set_axis_ticks("x-axis", self.labels(offsets))
    
        def on_inc(self, sender, app_data, user_data):
            self.n += user_data
            self.n = max(1, self.n)
            self.update()
    
        def render(self):
            with dpg.group(horizontal=True):
                dpg.add_button(label="Inc", callback=self.on_inc, user_data=1)
                dpg.add_button(label="Dec", callback=self.on_inc, user_data=-1)
    
            with dpg.plot(label="Bar Plot", width=700, height=400):
                offsets = self.offsets()
    
                dpg.add_plot_legend()
                dpg.add_plot_axis(dpg.mvXAxis, label="X", tag="x-axis", no_gridlines=True)
                dpg.set_axis_ticks("x-axis", self.labels(offsets))
    
                with dpg.plot_axis(dpg.mvYAxis, label="Y", tag="y-axis"):
                    for i in range(self.m):
                        ys = self.data[:, i]
                        xs = offsets + i
                        dpg.add_bar_series(list(xs), list(ys), label=f"Series {i}", tag=f"series-{i}", weight=1)
    
                dpg.set_axis_limits_auto("x-axis")
                dpg.set_axis_limits_auto("y-axis")
    
    
    bar_plot = BarPlot()
    
    
    def render_gui():
        with dpg.window(tag="main_window"):
            dpg.add_spacer()
            bar_plot.render()
    
    
    def run():
        dpg.create_context()
        dpg.create_viewport(title='Bug', width=720, height=720)
        render_gui()
        dpg.setup_dearpygui()
        dpg.show_viewport()
        dpg.start_dearpygui()
        dpg.destroy_context()
    
    
    if __name__ == "__main__":
        run()
    

    Also I found some nice examples here:

    https://dearpygui.readthedocs.io/en/latest/documentation/plots.html#gallery

    However the code is not published. Would be great to have it as examples in the project to see how to use dearpygui better.

    As a side note, add_bar_series does not properly work with numpy arrays, this could be improved as well.

    state: pending type: bug 
    opened by degloff 1
  • Exit button does not maintain red color on hover

    Exit button does not maintain red color on hover

    Version of Dear PyGui

    Version: 1.3.1 Operating System: Windows 10

    My Issue/Question

    When attempting to exit a dearpygui viewport window in Windows, if you hover over the 'X', it is momentarily red instead of staying a steady red (as other applications do).

    To Reproduce

    Steps to reproduce the behavior:

    1. Load any dearpygui viewport
    2. Hover over the 'X' on the Windows window, and notice that it turns red initially, but then goes back to grey.
    3. Move the mouse slightly and notice that it continually moves between red and grey.

    Expected behavior

    When hovering over the exit button, the button should be a steady red color.

    Screenshots/Video

    This is difficult to show in an image, but I am hovering over the 'X' (as evidenced by the "close" text), and the background is not red.

    dearpygui example

    image

    firefox example

    image

    Standalone, minimal, complete and verifiable example

    Any example works, but here's one from the docs.

    import dearpygui.dearpygui as dpg
    import dearpygui.demo as demo
    
    dpg.create_context()
    dpg.create_viewport(title='Custom Title', width=600, height=600)
    
    demo.show_demo()
    
    dpg.setup_dearpygui()
    dpg.show_viewport()
    dpg.start_dearpygui()
    dpg.destroy_context()
    
    state: pending type: bug 
    opened by keck-in-space 0
  • Problem running example on MacOS 10.14.6

    Problem running example on MacOS 10.14.6

    Hello all.

    I'm having trouble running the examples on MacOS Mojave 10.14.6, the errors makes me think that this is a bug related to the OS. Please tell me if this is supposed to happen and how can I solve it. Thanks in advance.

    Version: 1.3.1 Operating System: MacOS Mojave 10.14.6 Environment list:

    bidict          0.21.4
    biosppy         0.8.0
    cycler          0.11.0
    dearpygui       1.3.1
    fonttools       4.28.5
    h5py            3.6.0
    joblib          1.1.0
    kiwisolver      1.3.2
    matplotlib      3.5.1
    numpy           1.22.0
    opencv-python   4.5.5.62
    packaging       21.3
    Pillow          9.0.0
    pip             21.1.1
    pya             0.4.2
    PyAudio         0.2.11
    pyparsing       3.0.6
    python-dateutil 2.8.2
    scikit-learn    1.0.2
    scipy           1.7.3
    setuptools      56.0.0
    shortuuid       1.0.8
    six             1.16.0
    threadpoolctl   3.0.0
    

    Code to run:

    import dearpygui.dearpygui as dpg
    
    def save_callback():
        print("Save Clicked")
    
    dpg.create_context()
    dpg.create_viewport()
    dpg.setup_dearpygui()
    
    with dpg.window(label="Example Window"):
        dpg.add_text("Hello world")
        dpg.add_button(label="Save", callback=save_callback)
        dpg.add_input_text(label="string")
        dpg.add_slider_float(label="float")
    
    dpg.show_viewport()
    dpg.start_dearpygui()
    dpg.destroy_context()
    
    state: pending type: bug 
    opened by luisArandas 0
  • Live map display and interaction

    Live map display and interaction

    Is your feature request related to a problem? Please describe. Hi. I want to create a graphical user interface based on dearpygui for an open-source autopilot system ground control station I'm working on. I want to completely implement this GUI with Python. I love dearpygui since it works really fast and seamlessly. But AFAIK it lacks support for displaying interactive map tiles. And I need to show the vehicle on some kind of map because it will be pointless without a map.

    Describe the solution you'd like I at least want a starting point that how I can work this out. Probably a good place to start is displaying multiple images as one on some dearypy GUI window. And also I need to be able to click on this big image and get the clicked position as X and Y values (relative to big image) and drag and slide the big picture. I think I can go back and front from/to GPS locations. Also, it would be great to add some markers in front of this big image with specifying lat, long (eventually). Any ideas on how can I work this out? Thanks...

    Describe alternatives you've considered I don't know there is an alternative for that. All other solutions are just workarounds (something like creating an HTML file to look at) but there is no such a thing for enabling live maps, those are just static.

    Additional context None.

    state: pending 
    opened by mustafa-gokce 0
  • Save style settings in show_style_editor

    Save style settings in show_style_editor

    DPG 1.3.1 Show_style_editor used to have functionality to copy the style settings to clipboard. This functionality was removed as part of the theme system overhaul towards version 1.0. Could this functionality be put back in, either as a copy to clipboard and/or save to theme file?

    type: feature priority: high 
    opened by DataExplorerUser 0
  • Segmentation fault when plotting with x-values but no y-values

    Segmentation fault when plotting with x-values but no y-values

    Version of Dear PyGui

    Version: 1.3.1 Operating System: Manjaro and Windows 10

    • Tested on both a desktop and a laptop running Manjaro 21.2.1 (kernel 5.10.93-1-MANJARO)
    • Tested also on the same laptop when running Windows 10 (21H1, build 19043.1466)

    Python version: 3.10.1 (Manjaro) and 3.10.2 (Windows 10)

    My Issue/Question

    Calling the e.g. the add_line_series or add_scatter_series functions with a non-empty list of x-values and an empty list of y-values causes a segmentation fault. It does not seem to matter if the argument is a list or a tuple. This issue may affect some other plotting functions.

    To Reproduce

    Steps to reproduce the behavior in general:

    1. Create a plot with an x-axis and at least one y-axis.
    2. Call e.g. add_line_series or add_scatter_series with an empty list/tuple as the y argument.

    Steps to reproduce the behavior with the provided example script:

    1. Click on the right-most button (labeled len(x) > 0, len(y) == 0).

    Expected behavior

    Nothing would be plotted (i.e. the same behavior as when an empty list/tuple is used as the x argument). At least the add_line_series and add_scatter_series seem to handle various scenarios without crashing as can be seen when pressing any of the other buttons in the provided example.

    Standalone, minimal, complete and verifiable example

    #!/usr/bin/env python3
    import dearpygui.dearpygui as dpg
    from typing import List
    
    
    def plot_data(x: List[int], y: List[int], axis: int):
        dpg.delete_item(axis, children_only=True)
        dpg.add_line_series(x, y, label="Line", parent=axis)
        dpg.add_scatter_series(x, y, label="Scatter", parent=axis)
    
    
    data: List[int] = [1, 2, 3, 4, 5]
    dpg.create_context()
    with dpg.window(width=-1, height=-1) as window:
        with dpg.plot(label="Single", width=-1, height=-24) as plot:
            dpg.add_plot_legend(outside=True, horizontal=True,
                                location=dpg.mvPlot_Location_North)
            x_axis: int = dpg.add_plot_axis(dpg.mvXAxis, label="X")
            y_axis: int = dpg.add_plot_axis(dpg.mvYAxis, label="Y1")
            dpg.set_axis_limits(x_axis, min(data) - 1, max(data) + 1)
            dpg.set_axis_limits(y_axis, min(data) - 1, max(data) + 1)
        with dpg.group(horizontal=True):
            dpg.add_button(label="len(x) == len(y)",
                           callback=lambda: plot_data(data, data, y_axis))
            dpg.add_button(label="len(x) > len(y)",
                           callback=lambda: plot_data(data, data[:-1], y_axis))
            dpg.add_button(label="len(x) < len(y)",
                           callback=lambda: plot_data(data[:-3], data, y_axis))
            dpg.add_button(label="len(x) == 0, len(y) == 0",
                           callback=lambda: plot_data([], data, y_axis))
            dpg.add_button(label="len(x) == 0, len(y) > 0",
                           callback=lambda: plot_data([], data, y_axis))
            dpg.add_button(label="len(x) > 0, len(y) == 0",
                           callback=lambda: plot_data(data, [], y_axis))
    dpg.create_viewport(title="Plotting segfault", width=800, height=600)
    dpg.set_primary_window(window, True)
    dpg.setup_dearpygui()
    dpg.show_viewport()
    dpg.start_dearpygui()
    dpg.destroy_context()
    
    category: plots priority: high type: bug 
    opened by vyrjana 1
Releases(v1.3.1)
  • v1.3.1(Jan 20, 2022)

    Another small release. Contains some windows specific fixes.

    News

    Our M1 Mac comes in today! Expect some M1 wheels this weekend. Also expect some MacOS specific fixes!

    Changelog

    Breaking Changes

    • fix: win32 viewport position. We account for the horizontal shift now. (0, 0) is the top left of the monitor as you'd expect.

    Fixes

    • fix: model window custom theme segfault #1543
    • fix (windows): repaint while resizing for win32 #422
    • fix (nodes): get_item_rect_min(...) and get_item_rect_max(...) #1239
    • fix (tables): all columns no longer need to be added before rows.

    Full Changelog: https://github.com/hoffstadt/DearPyGui/compare/v1.3...v1.3.1

    Thank you!

    Dear PyGui development is currently funded by a handful of gracious sponsors and we would like to thank them tremendously. We wouldn't be here with out you guys.

    Thank you for supporting us.

    If you or your company uses Dear PyGui, please consider supporting us! We need it now more than ever.

    Source code(tar.gz)
    Source code(zip)
  • v1.3(Jan 15, 2022)

    Small release but bumping the minor version. Updates on renderer are at the bottom.

    News

    • We are still waiting on an M1 Mac. (arrives next week!)
    • We plan on dropping support for Python 3.6 soon.

    Changelog

    Features

    • added set_clipboard_text(...) #1531
    • added get_clipboard_text(...) #1531
    • added user_data arg to set_resize_callback(...) #1537
    • added user_data arg to set_viewport_resize_callback(...) #1537
    • added user_data arg to set_frame_callback(...) #1537
    • added user_data arg to set_exit_callback(...) #1537
    • added user_data arg to capture_next_item(...) #1537

    Fixes

    • fix a confusion about minor version by @BadSugar in https://github.com/hoffstadt/DearPyGui/pull/1518
    • fix "wrap" not working properly in tables #1532
    • fix drag & drop onto plot

    Renderer Updates

    We have been working on creating a GLTF file importer for the 3D renderer. It is mostly complete. While doing so, we wrote a small renderer (Windows only) to test some of the features. Since we do not plan on just dumping the entire 3D engine into DPG at once but instead in small pieces (as we settle on parts of the API), we are considering starting this by adding a small "asset viewer" like widget early to DPG. It would just allow users to import a GLTF file (other formats to follow) and view the model. Includes PBR, animations, IBL, skinning, morphing, clearcoat, etc. It would be a very high level widget so we can continue working on the engine without changing the API. Video below:

    https://user-images.githubusercontent.com/39973752/149627101-1e43558f-6fd5-4b3a-89ec-e831033297b2.mp4

    New Contributors

    • @BadSugar made their first contribution in https://github.com/hoffstadt/DearPyGui/pull/1518

    Thank you!

    Dear PyGui development is currently funded by a handful of gracious sponsors and we would like to thank them tremendously. We wouldn't be here with out you guys.

    Thank you for supporting us.

    If you or your company uses Dear PyGui, please consider supporting us! We need it now more than ever.

    Source code(tar.gz)
    Source code(zip)
  • v1.2(Dec 31, 2021)

    Happy New Year! Last release of the year. It may not seem like much but we have still been working on mostly internal optimizations and refactoring to prepare for the 3D renderer and Vulkan backend. With relatively large refactors and insufficient regression tests, there is always a non-zero chance for small regressions. Please check your apps and let us know if there are any regression issues!

    News

    • We ordered an M1 Mac which is expected to arrive between Jan 21-28, so expect the M1 wheels to come late January!
    • Python 3.6 has reached EOL. We will drop support once Python 3.11 is released.
    • Checkout our interview with Talk Python.
    • We plan on starting to add an additional module (dearpygui.im) which is an almost direct immediate mode wrapping to imgui.

    Changelog

    Features

    • feat: exposed callback queue. See this.
      • keyword: added manual_callback_management to dpg.configure_app(...)
      • command: dpg.get_callback_queue(...)
      • command: dpg.run_callbacks(...)
    • keyword: added no_open_over_existing_popup to dpg.add_window(...) #1513

    Fixes

    • fix: width/height ignored by file dialog #1476 and added min/max sizes
    • fix: handler deactivation #1485
    • fix: font atlas recreation, related to #1417
    • fix (mvKnobFloat): Fix extra padding on knob when label field not pre… by @geekbozu
    • fix (mvTableRow): table row not honoring "show" #1502

    New Contributors

    • @geekbozu made their first contribution in https://github.com/hoffstadt/DearPyGui/pull/1501
    • @FredericChang made their first contribution in https://github.com/hoffstadt/DearPyGui/pull/1510

    Thank you!

    Dear PyGui development is currently funded by a handful of gracious sponsors and we would like to thank them tremendously. We wouldn't be here with out you guys.

    Thank you for supporting us.

    If you or your company uses Dear PyGui, please consider supporting us! We need it now more than ever.

    Full Changelog: https://github.com/hoffstadt/DearPyGui/compare/v1.1.3...v1.2

    Source code(tar.gz)
    Source code(zip)
  • v1.1.3(Dec 6, 2021)

    Mostly a maintenance release with internal changes however a few bugs have been fixed.

    Changelog

    • fix: finished hooking up theme get_item_configuration(...) #1440 by @hoffstadt in https://github.com/hoffstadt/DearPyGui/pull/1441
    • fix: is_table_column_highlight, cell and row #1452 by @Pcothren in https://github.com/hoffstadt/DearPyGui/pull/1454
    • fix: fixed exit callback not having access to dpg commands #1448 by @hoffstadt in https://github.com/hoffstadt/DearPyGui/pull/1458
    • fix: alias improper cleanup #1350 by @hoffstadt in https://github.com/hoffstadt/DearPyGui/pull/1457
    • fix : table column/row freeze swapped #1467 by @Pcothren

    Full Changelog: https://github.com/hoffstadt/DearPyGui/compare/v1.1.1...v1.1.3

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Nov 19, 2021)

    This is just a maintenance release.

    Fixes

    • fix: polygon drawn on plot wrong point conversion #1423 by @hoffstadt in https://github.com/hoffstadt/DearPyGui/pull/1424
    • fix: draw_ellipse/draw_polyline broken #1425 by @hoffstadt in https://github.com/hoffstadt/DearPyGui/pull/1430
    • fix: dockspace preview theming not working #1429 by @hoffstadt in https://github.com/hoffstadt/DearPyGui/pull/1431
    • fix: theme style target categories not working #1220 by @hoffstadt in https://github.com/hoffstadt/DearPyGui/pull/1434

    Full Changelog: https://github.com/hoffstadt/DearPyGui/compare/v1.1...v1.1.1

    Source code(tar.gz)
    Source code(zip)
  • v1.1(Nov 12, 2021)

    TL:DR;

    • This is release is mostly for the new drawing transform features.
    • There are several fixes included as well.
    • You can now use dpg.configure_app(wait_for_input=True) to only update/render on user input!
    • The focus over the next few releases will be BUGS, PERFORMANCE, and HIGH DPI SUPPORT.

    Changelog

    Features

    • added wait_for_input keyword to configure_app(...)
    • added draw node item (add_draw_node(...)) (see drawing section in demo)
    • added apply_transform(...) command for draw nodes
    • added perspective_divide keyword to draw_layer(...)
    • added depth_clipping keyword to draw_layer(...)
    • added cull_mode keyword to draw_layer(...)
    • added set_clip_space(...) command for draw layers
    • added get_text_size(...)
    • added create_rotation_matrix(...) command
    • added create_translation_matrix(...) command
    • added create_scale_matrix(...) command
    • added create_lookat_matrix(...) command
    • added create_perspective_matrix(...) command
    • added create_orthographic_matrix(...) command
    • added create_fps_matrix(...) command
    • added built-in mvMat4 type (for now, just used for the above operations)
    • colormaps can now be sampled before startup

    Fixes

    • input float disable not working #1387
    • fixed "default_open" issue with tree nodes #1388
    • plot annotations not obeying show/hide
    • callback not called when input_int goes from 1 to 0 #1398
    • keypress and key release polling issue (#1339)
    • fixed location kwarg arg being ignored (#1347)
    • fix position control not hooked up (#1346)
    • fixed fonts/themes for table
    • fixed issue where clearing and repopulating table caused crash
    • type hints for color type for certain methods #1405
    • global themes for disabled components not working #1401
    • remapped file dialog selected color from mvThemeCol_Header to mvThemeCol_FrameBgActive

    Internal

    • build: removed std::filesystem dependency for unix OS's (#1412)
      • Should fix some linux distro issues
    • build: upgraded implot from v0.11 to v0.12 (#1353)
    • refactor: imgui, implot, imnodes context creation moved to dpg context

    Notes

    3D Operations

    These new features are not a replacement for an actual 3D renderer but they are useful for light 3D operations. The actual 3D renderer will be coming with Dear Py3D. We will also be adding a software renderer to Dear PyGui in the near future. This will also not be a replacement for the hardware accelerated 3D render but will resolve a few of the 3D issues with the drawing API that can't be easily solved without per pixel control. It will also be useful for us for automated testing and as a fallback renderer for machines that don't support the graphics APIs we use. Small sandbox can be found here. We will be adding several helpers to DearPyGui_ext (i.e. cameras).

    mvMat4 type

    We added the mvMat4 (and mvVec4) types to work with the create_*_matrix(...) commands and apply_transform(...). We will continue to make these more complete matrix and vector types for general purpose use but the initial focus was for the basic 3D operation use cases. We did not want to use python lists (too slow) and we did not want to added a dependency (numpy). We will continue to improve the performance of these new types as well (SIMD support).

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Oct 16, 2021)

    TL:DR;

    • This is a maintenance release with a handful of fixes.
    • Raspberry Pi 4 (python 3.7) is now supported.

    Version 1.0 availability as of now:

    | Platform | Python 3.6 | Python 3.7 | Python 3.8 | Python 3.9 | Python 3.10 | |-----------|-------------|-------------|-------------|-------------|--------------| | Windows 10 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | macOS | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | Linux | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | Raspberry Pi 4 | | ✔️ | | | |

    Changelog

    Fixes

    • fix (mvItemRegistry): color map render order to fix #1335
    • fix (themes): fixed enabled/disabled theme setting issues
    • fix (mvTable): fixed tooltips not working in table #1255
    • fix (mvCollapsingHeader): fixed default_open #1327
    • fix (mvNodeLink): fixed node link theme bleeding #1269
    • fix (mvItemRegistry): temp. fix for delayed search not cleaning up
    • fix: fixed themes not binding to node attributes #1320 (#1329)
    • fixed show_item_registry() not rendering widgets #1321

    misc

    • removed unused keywords from a few items
    • reduced Linux wheel sizes from 80mb to ~3mb (thanks mindv0rtex)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Oct 13, 2021)

    News

    Well folks, this has been a long 17 months but we are finally here. Please at a minimum read the changelog and checkout the Gallery at the end of this release! Also checkout the Founding Sponsors and Retiring Tiers Announcement. You have until the end of day October 14th to be included! If you should be included but were not, please let us know (check the about menu).

    image

    Version 1.0 availability as of now:

    | Platform | Python 3.6 | Python 3.7 | Python 3.8 | Python 3.9 | Python 3.10 | |-----------|-------------|-------------|-------------|-------------|--------------| | Windows 10 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | macOS | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | Linux | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |

    Raspberry Pi 4 will be available in a few days.

    What to expect?

    API & 0.8 Migration

    The API is slightly more explicit, but migration effort should be minimal.

    Deprecation

    We will no longer break your code! We will use deprecation moving forward.

    What can we break/change going forward?

    1. Things in the experimental module.
    2. Debug tools.

    Bugs

    Although this release should have the least number of bugs to date, there may be a few regression bugs as many of the underlying systems have been refactored entirely since 0.8 and we do not yet have meaningful regression tests setup. The primary focus for this release was stabilizing the API which we have now done. The current issues need to be reevaluated for this release.

    Maintenance Releases

    There will most likely be frequent maintenance releases over the next weeks.

    Documentation & Tutorials

    The docs are being worked on everyday and will continue to be worked on and expanded. There are a few edge features and details that have not been fully documented. We will also be starting back the YouTube tutorial series!

    Previous Versions

    We will maintain v0.6.415 and v0.8.64. If you have another version as part of a project's requirements, update or vendor the wheel because we will be removing the rest of the wheels to free space for pypi.

    Future

    1.0 is just the beginning. There is still a lot of work to be done and a lot of exciting stuff coming down the pipeline. We will have to be more careful moving forward but that will not stop the momentum!

    Integration

    We plan on looking at integration with other libraries (i.e. pygame). Not to mention the 3D engine we are working on.

    Platforms

    We still want to bring in mobile (and maybe web eventually).

    Contributors

    We are continuing to cleanup and document the backend to facilitate a more contributor-friendly codebase. As you all know, the wiki is now going to be the contributor documentation.

    Change Log

    Breaking Changes

    • user must create Dear_PyGui context with create_context() before calling any DPG commands
    • changed dragPayload drag_data is submitted to the targets drag_callback rather than drop_callback
    • moved logger and themes to DearPyGui_Ext
    • table rows now required
    • removed bind_item_disabled_theme(...)
    • removed bind_item_type_disabled_theme(...)
    • removed bind_item_type_theme(...)
    • user must create, setup, show viewport before starting dpg:
      • "create_viewport()->setup_dearpygui()->show_viewport()->start_dearpygui()"
    • add_theme_color(...) and add_theme_style(...) must known belong to a theme_component

    New

    • module: added experimental (not in use yet)
    • item: added add_table_cell(...)
    • item: added add_spacer(...)
    • item: added add_theme_component(...)
    • command: added get_major_version(...)
    • command: added get_minor_version(...)
    • command: added toggle_viewport_fullscreen(...)
    • command: added show_item_debug(...)
    • command: added bind_theme(...)
    • command: added highlight_table_column(...)
    • command: added unhighlight_table_column(...)
    • command: added set_table_row_color(...)
    • command: added unset_table_row_color(...)
    • command: added highlight_table_cell(...)
    • command: added unhighlight_table_cell(...)
    • command: added highlight_table_row(...)
    • command: added unhighlight_table_row(...)
    • command: added is_table_column_highlighted(...)
    • command: added is_table_row_highlighted(...)
    • command: added is_table_cell_highlighted(...)
    • command: added context manager for add_plot_axis(...)
    • command: added configure_app(...)
    • command: added get_app_configuration(...)
    • command: added add_item_set(...)
    • command: added add_template_registry(...)
    • command: added bind_template_registry(...)
    • keyword: added drag_callback, drop_callback, payload_type to add_image(...)
    • keyword: added drag_callback, drop_callback, payload_type to add_text(...)
    • keyword: added drop_data to drag_payload(...)
    • keyword: added xoffset to group(...)
    • keyword: added id to popup(...)
    • keyword: added clipper to add_table(...)
    • added deprecation system
    • callbacks will now send alias through the sender argument if alias is used.
    • columns can now be programmatically hidden
    • table "value" is now a string, which acts as a filter using the row filter keys
    • texture id can be updated with configure_item(...) for texture based widgets

    Deprecated

    • item: removed table_next_column
    • removed viewport keyword arg from setup_dearpygui(...)
    • removed viewport keyword arg from show_viewport(...)
    • keyword: removed drag_callback from add_menu_item(...)
    • keyword: removed drag_callback from add_colormap_scale(...)
    • keyword: removed drag_callback from add_colormap_slider(...)
    • keyword: removed default_font keyword arg from add_font(...), use bind_font(...) now
    • keyword: removed default_theme keyword arg from add_theme(...), use bind_theme(...) now
    • keyword: renamed id keyword to tag
    • command: cleanup_dearpygui(...) is deprecated. Use destroy_context(...)
    • command: staging_container(...) is deprecated. Use stage(...)
    • command: enable_docking(...) is deprecated. Use configure_app(docking=True, docking_space=dock_space)
    • command: get_dearpygui_version() is deprecated. Use get_app_configuration()['version'].
    • command: init_file(...) is deprecated. Use configure_app(init_file=file).
    • command: load_init_file is deprecated. Use configure_app(init_file=file, load_init_file=True).
    • command: is_viewport_created(...) is deprecated. Use is_viewport_ok().
    • command: setup_viewport(...) is deprecated. Use create_viewport()->setup_dearpygui()->show_viewport().
    • command: set_item_theme(...) is deprecated. Use bind_item_theme().
    • command: set_item_type_disabled_theme(...) is deprecated. Use bind_item_type_disabled_theme().
    • command: set_item_theme(...) is deprecated. Use bind_item_theme().
    • command: set_item_type_theme(...) is deprecated. Use bind_item_type_theme().
    • command: set_item_font(...) is deprecated. Use bind_item_font().
    • command: add_activated_handler(...) is deprecated. Use add_activated_handler().
    • command: add_active_handler(...) is deprecated. Use add_item_active_handler().
    • command: add_clicked_handler(...) is deprecated. Use add_item_clicked_handler().
    • command: add_deactivated_after_edit_handler(...) is deprecated. Use add_item_deactivated_after_edit_handler().
    • command: add_deactivated_handler(...) is deprecated. Use add_item_deactivated_handler().
    • command: add_edited_handler(...) is deprecated. Use add_item_edited_handler().
    • command: add_focus_handler(...) is deprecated. Use add_item_focus_handler().
    • command: add_hover_handler(...) is deprecated. Use add_item_hover_handler().
    • command: add_resize_handler(...) is deprecated. Use add_item_resize_handler().
    • command: add_toggled_open_handler(...) is deprecated. Use add_item_toggled_open_handler().
    • command: add_visible_handler(...) is deprecated. Use add_item_visible_handler().
    • command: set_colormap(...) is deprecated. Use bind_colormap().
    • command: reset_default_theme(...) is deprecated. Use bind_theme(mvAll).
    • command: set_staging_mode(...) is deprecated. No longer needed.
    • command: add_spacing(...) is deprecated. Use 'add_spacer(...)`
    • command: add_dummy(...) is deprecated. Use 'add_spacer(...)`
    • command: add_child(...) is deprecated. Use 'add_child_window(...)`
    • command: add_same_line(...) is deprecated. Use add_group(horizontal=True)

    Fixes

    • fixed get_item_configuration(...) memory leak #1179
    • fixed issue to allow source to be alias #1181
    • fixed window info not registering as container #1188
    • fixed min/max clamping issue with input widgets #1229
    • fixed using aliases for set/get value
    • fixed issue with get_selected_nodes(...) #1263
    • fixed listbox default value empty #1219
    • fixed ellipse thickness keyword not working #1213
    • fixed return type hints for callbacks #1208
    • fixed modal xpos creep #1171
    • fixed plot context/configuration sync issues
    • fixed plot axis context/configuration sync issues
    • fixed plot legend context/configuration sync issues
    • fixed toggled_open_handler triggering for closed #1280

    Thank you!

    Dear PyGui development is currently funded by a handful of gracious sponsors and we would like to thank them tremendously. We wouldn't be here with out you guys.

    Thank you for supporting us.

    If you or your company uses Dear PyGui, please consider supporting us! We need it now more than ever.

    Gallery

    image

    image

    image

    image

    image

    image

    image

    https://user-images.githubusercontent.com/39973752/137012413-cb9af94d-d1e0-49b2-ad59-e56f7b25b962.mp4

    https://user-images.githubusercontent.com/39973752/137012538-597e48c2-5250-49d7-a019-29fcdf358fab.mp4

    Source code(tar.gz)
    Source code(zip)
  • v0.8.62(Aug 12, 2021)

    News

    • You can now use a string in place of an ID (similar to 0.6)! See here. This is optional but prevents users from needing to manage the UUID's manually!
    • We are sticking with the names Dear PyGui and Dear Py3D!

    Breaking Changes

    • pmin & pmax were backwards in draw_rectangle(...). You need to reverse them. Related to #1163
    • add_colormap_scale(...) keyword colormap now corresponds to mvColorMap widget

    New

    • feature: id can now be a string, but must be unique!
    • command: added get_item_alias(...)
    • command: added set_item_alias(...)
    • command: added add_alias(...)
    • command: added remove_alias(...)
    • command: added does_alias_exist(...)
    • command: added get_alias_id(...)
    • command: added get_aliases(...)
    • command: added get_item_registry_configuration(...)
    • command: added configure_item_registry(...)
    • widget: added add_colormap(...) #1069
    • widget: added add_colormap_registry(...) #1069
    • widget: added add_colormap_button(...)
    • widget: added add_colormap_slider(...)
    • command: added sample_colormap(...)
    • command: added get_colormap_color(...)
    • keyword: added mulicolor to draw_rectangle(...)
    • keyword: added color_upper_left to draw_rectangle(...)
    • keyword: added color_upper_right to draw_rectangle(...)
    • keyword: added color_bottom_left to draw_rectangle(...)
    • keyword: added color_bottom_right to draw_rectangle(...)
    • constant: added mvPlotColormap_Twilight
    • constant: added mvPlotColormap_RdBu
    • constant: added mvPlotColormap_BrBG
    • constant: added mvPlotColormap_PiYG
    • constant: added mvPlotColormap_Spectral
    • constant: added mvPlotColormap_Greys
    • set_value(...) now works for theme_color #1136
    • set_value(...) now works for theme_style #1136
    • added use_internal_label keyword to all widgets, related to #1135

    Fixes

    • fixed setting default theme values
    • fixed infinite on_close callbackss #1149
    • fixed get_item_configuration(...) for window max_size
    • fixed histogram misspelling issue related to #1132
    • fixed adding font ranges over 0x10000 #1092
    • fixed viewport issue for windows #1126

    Other

    • added colormap section to demo under "widgets"
    • simplied drawing API demo
    Source code(tar.gz)
    Source code(zip)
  • v0.6.415(Apr 19, 2021)

    News

    With version 0.7 just a few weeks away, we expect this to be the last 0.6 release. We will begin focusing solely on 0.7.

    Version 0.7 will contain the final breaking changes and once all the obvious bugs and issues are addressed, it will be tagged 1.0! Be aware that 0.7 will contain the largest amount of updates, features, and breaking changes of any release thus far (and by far), however we believe once users begin to work with the improvements, they will agree it is for the best.

    You will also notice @Pcothren and I have been less active in the discord server and github discussions but this is due solely to our focus being on 0.7's release.

    In the following weeks, you will see the wiki beginning to split between 0.6/0.7 sections. We will also begin posting a running change log on the wiki so users can prepare for the upcoming changes.

    If you have questions about any of the changes, please contact us.

    Updates

    • vcruntime140_1.dll: now included, addressing #563 and others
    • tab_bar: "set_value" can now programmatically set the active tab #729

    Fixes

    • add_series: fixed axis 1 not being reset when plotting to different axes #744
    • add_input_*: fixed multiple ran callback when using min/max values
    • nodes: memory bad read/write related to deleting nodes
    • add_input_int3 | add_input_float3 callback isn't working anymore #800
    • fixed mac cpu unbound usage when window is covered
    • Setting add_label_text color causes label text to change showing the hidden label name #803
    • Adding textures at runtime did not work for linux #687
    • Texture updates on MacOS cause crash #743
    Source code(tar.gz)
    Source code(zip)
  • v0.6.294(Mar 22, 2021)

    Updates

    • numpy: new buffer types
    • vcruntime140_1.dll: now included, addressing #563 and others

    New Keywords

    • add_window: "collapsed" keyword added #656

    Fixes

    • enable/disable: fixed bug related to disabling twice.
    • child: fixed "get_item_configuration" not returning all items
    • image_series: fixed issue for render callback #667
    • node editor: fixed crash on exit if using delink callbacks
    • get_all_items: now returns windows too #685
    • item label: fixed trailing "#" not showing in labels
    • get_item_configuration: fixed "no_close" returning true always for windows #694
    • configure_item: base item configuration no longer errors #708
    • numpy: finally fixed buffer protocol on mac #698
    • nodes: fixed deleting node attributes causing crash
    • textures: fixed issues related to textures #711 #687
    Source code(tar.gz)
    Source code(zip)
  • 0.6.230(Mar 3, 2021)

    Fixes

    • nodes: fixed draggable keyword not working #648
    • plots: fixed get_plot_mouse_pos() returning ints #647
    • fix delink callback not running #637
    • primary window getting "stuck" #634
    • window config not returning specified label #627
    • Fixed enable/disable lost settings #633
    Source code(tar.gz)
    Source code(zip)
  • v0.6.203(Feb 17, 2021)

    We decided to go ahead and backport the Node Editor from 0.7! Check it out in the demo and below!

    New Commands

    • add_node: new command added
    • add_node_attribute: new command added
    • add_node_editor: new command added
    • add_node_link: new command added
    • clear_selected_links: new command added
    • clear_selected_nodes: new command added
    • delete_node_link: new command added
    • get_links: new command added
    • *get_selected_links: new command added
    • get_selected_nodes: new command added

    New Keywords

    • add_table: hide_headers keyword now available

    Gallery

    New Node Editor Widget (wrapping of imnodes):

    Calculator Emulator:

    Start of a chatroom application by a user:

    Window Management application by a user:

    Source code(tar.gz)
    Source code(zip)
  • v0.6.183(Feb 12, 2021)

    Small release with 0.7 backports.

    Updates

    • added protections to heat series
    • implot: updated to 7234801
    • draw commands: can now be sent to plots #457

    New Commands

    • get_drawing_mouse_pos: can now retrieve mouse pos over a drawing #507
    • add_vline_series: can now add infinite vertical lines to a plot #541
    • add_hline_series: can now add infinite horizontal lines to a plot #541
    Source code(tar.gz)
    Source code(zip)
  • v0.6.166(Feb 4, 2021)

    Just another quick bug fix release!

    Fixes

    • numpy plots: fixed issue with numpy arrays not plotting
    • numpy: fixed possible memory leak with data storage #537
    • callback_error: prevent callback error crash
    • set_color_map crash #512
    • add_text: changed default wrap to -1
    • tree_node: fixed label being ignored in context manager
    Source code(tar.gz)
    Source code(zip)
  • v0.6.121(Jan 3, 2021)

    Quick bug fix release.

    New Keywords

    • add_input_text: Added "tab_input"

    Fixes

    • logger: fixed issue where logs didn't show up at first
    • get_item_label: fixed issue where internal label was returned #428
    • plot: fixed issue where plot ignored label #435
    • delete_row: fixed issue where row 0 couldn't be deleted #421
    Source code(tar.gz)
    Source code(zip)
  • v0.5.66(Nov 6, 2020)

    Changes

    • Data Storage: now thread safe
    • set_value: now thread safe
    • get_value: now thread safe

    New Commands

    • Tab Button: Added add_tab_button command

    New Keywords

    • tab: Added no_reorder keyword
    • tab: Added leading keyword
    • tab: Added trailing keyword
    • tab: Added no_tooltip keyword

    Fixes

    • tabbar: fixed tabbar callback
    • drawing: fixed "originy" issue #309
    • table: fixed spacing issue #297
    Source code(tar.gz)
    Source code(zip)
  • v0.4.5(Oct 7, 2020)

    Updates

    • Stub File: stub file is now generated automatically

    Breaking Changes

    • Label Text: changed value keyword to default_value
    • Progress Bar: changed value keyword to default_value

    Fixes

    • Input Text: callback_data was not being sent
    • Logger: Log messages only showed up after 2nd call
    • Tabs: Fixed issue with items on tabs not lining up when using same_line
    • Stub file: add_logger added to stub file
    • Plots: reset_yticks was resetting x ticks
    • Select Directory: fixed callback crash
    Source code(tar.gz)
    Source code(zip)
  • v0.4.3(Oct 1, 2020)


    VERSION 0.4.3 (10/01/2020)

    New Keywords:

    • Text: Added "source"
    • Text: Added "default_value"
    • Collapsing Header: Added "open_on_double_click"
    • Collapsing Header: Added "open_on_arrow"
    • Collapsing Header: Added "leaf"
    • Collapsing Header: Added "bullet"
    • Tree Node: Added "open_on_double_click"
    • Tree Node: Added "open_on_arrow"
    • Tree Node: Added "leaf"
    • Tree Node: Added "bullet"
    • child: Added "autosize_x"
    • child: Added "autosize_y"
    • child: Added "no_scrollbar"
    • child: Added "horizontal_scrollbar"
    • child: Added "menubar"
    • input_float: Added "step"
    • input_float: Added "step_fast"

    Changes:

    • Text: Text is wrapped by default now.
    Source code(tar.gz)
    Source code(zip)
  • v0.4.2(Sep 30, 2020)


    VERSION 0.4.2 (9/30/2020)

    Decorated log: https://github.com/hoffstadt/DearPyGui/releases/tag/v0.4.2

    Fixes:

    • Standard Windows: fixed show/hide of standard windows
    • Windows: fixed run time adding crashes when collapsing
    • Logger: show_item/hide_item now working
    • ID Stack: unique labels withing a widget "path" not required anymore
    • Demo: updates for colors
    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Sep 29, 2020)

    Background

    All, this is one of the biggest releases to date. We apologize in advance for breaking any code. This release served 3 purposes:

    1. Solidify current API's features for Version 1.0
    2. Complete plotting capabilities
    3. Prepare the backend for more long term maintenance.

    Notes:

    • 99% of the current API will remain for version 1.0. We don't plan on breaking backwards compatibility for the current API unless there is a very good reason and it will extremely isolated.
    • I'm sure we missed some changes. It would be best to review the documentation.
    • Checkout the new show_demo command in dearpygui.demo
    • Some previous commands are now in dearpygui.simple.
    • Several widgets received a considerable amount of new flags, please review.
    • Every keyword you used to create a widget can now be modified with configure_item("some widget", keyword1=blah, keyword2=blah).
    • The examples have been updated to work, however they are not necessarily the best reference on best way to use the library. We will be updating this soon.
    • The documentation has been updated, but will need to be massively extended to include all the new features and possibilities.
    • The data source system has been separated from the widget shared value system.
    • We will be adding a lot more helpers and wrappers to simple. In particular to help with plotting.
    • If you need help refactoring your code for these changes, feel free to reach out in the discord!
    • We are sure there may be a few bugs with these number of changes, but we have made our best effort in testing all the features. You can actually see our testing cases with the show_demo command.

    Fixes

    • Threadpool: Fixed issue with some tasks going uncompleted
    • Popups: Can now be added anywhere (doesn't have to be right after their parent)
    • Tooltips: Can now be added anywhere (doesn't have to be right after their parent)
    • Widgets: Can widths can now be negative (size from the right side of screen)

    Breaking Changes

    • Handlers: removed handler from all callbacks except resize
    • Data Source: data_source keywords changed to source
    • Tables: tables no longer use set/get value
    • Modules: dearpygui module is now called core
    • Modules: wrapper module is now called simple
    • Line Series: Removed fill keyword (use the new shade series)
    • Plots: Removed all flags in favor of keywords
    • Plots: x/y_axis_name keyword now required
    • Window: For the add_window command, we changed start_x,start_y to x_pos, y_pos
    • Window: For the add_window command, changed resizable keyword to no_resize
    • Window: For the add_window command, changed title_bar keyword to no_title_bar
    • Window: For the add_window command, changed movable keyword to no_move
    • Images: Removed secondary data source from images
    • Listbox: Changed height keyword to num_items
    • Listbox: items keyword now required
    • RadioButton: items keyword now required
    • Combo: items keyword now required
    • Dummy: height and width keyword now required
    • Simple Plot: autoscale keyword removed

    New Commands

    • Widgets: Every widgets has a few more flags which could be: label, show, etc.
    • Demo: Added show_demo command to dearpygui.demo
    • Widgets: Added "add_color_button
    • Plots: Added add_drag_point
    • Plots: Added add_drag_line
    • Plots: Added delete_drag_line
    • Plots: Added delete_drag_point
    • Plots: Added add_annotation
    • Plots: Added delete_annotation
    • Tables: Added set_table_data
    • Tables: Added get_table_data
    • Widgets: Added add_value
    • Widgets: Added incref_value
    • Widgets: Added decref_value
    • Main Window: Added set_main_window_pos command #193
    • Inputs: Added get_plot_mouse_pos command #225
    • Widgets: Added add_time_picker command
    • Widgets: Added add_date_picker command
    • Widgets: Added get_item_type command
    • Widgets: Added configure_item command
    • Widgets: Added get_item_configuration command
    • Widgets: Added add_pie_series command
    • Plots: Added add_shade_series command
    • Plots: Added add_image_series command
    • Plots: Added add_bar_series command
    • Plots: Added add_error_series command
    • Plots: Added add_heat_series command
    • Radio Button: Added horizontal keyword to radio button #215
    • Radio Button: Added update_bounds keyword to add_*_series commands
    • Color Items: Alot of new flags
    • Columns: Added managed_columns
    • Columns: Added add_columns
    • Columns: Added add_next_column
    • Selectable: Added span_columns keyword

    Appretiation

    We really appreciate the community for working with us through all the bugs, changes, and new features. We in particular would like to thank our sponsors:

    • @dkluis
    • @cubic-unit
    • @jendakolda
    • @traverseda
    Source code(tar.gz)
    Source code(zip)
  • v0.3.7(Sep 15, 2020)


    VERSION 0.3.7 (9/14/2020)

    Updates:

    • ImPlot: upgraded to commit 4f0a09f

    New Commands:

    • Widgets: Added add_image_button command
    • Plots: Added add_pie_chart command
    • Plots: Added add_pie_chart_data command
    • Plots: Added clear_pie_chart_data command
    • Plots: Added add_stem_series command

    Fixes:

    • Threadpool: Fixed issue with threads freezing
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Sep 5, 2020)


    VERSION 0.2.0 (9/5/2020)

    New Features:

    • Context Managers: You can now import dearpygui.wrappers to use context manager versions of all containers

    Changes:

    • Widgets: All "add_widget" commands now return true on successful adding or false.

    Breaking Changes:

    • Container Widgets: Replaced all end_* commands with a single end() command
    Source code(tar.gz)
    Source code(zip)
  • v0.1.3(Sep 4, 2020)

Dear PyGui Extensions is a collection of useful tools, abstractions, and simplification layers built with/for Dear PyGui users.

Dear PyGui Extensions: A collection of useful tools, abstractions, and simplification layers built with/for Dear PyGui users.

Jonathan Hoffstadt 19 Jan 2, 2022
Python code examples on how to create several applications using Dear PyGui.

Python code examples on how to create several applications using Dear PyGui. Includes building and editing a table, as well as visualizing sorting algorithms in a plot.

Alexander H. 2 Dec 22, 2021
A graphical user interface calendar with python

GUI-Calendar A graphical user interface calendar with python In this project I used tkinter module If you dont have tkinter module you can install it

Arone Sadegh 1 Dec 18, 2021
Py address book gui - An address book with graphical user interface developed with Python Tkinter

py_address_book_gui An address book with graphical user interface developed with

Milton 4 Feb 1, 2022
Dress up your code with a beautiful graphical user interface !

Dresscode Dress up your code with a beautiful graphical user interface ! This project is part of the Pyrustic Ecosystem. Look powered by the cyberpunk

null 21 Nov 23, 2021
Advanced Zola Cabs integrated with tkinter Graphical User Interface (GUI) made for ZOHO Corp .

ZolaCabs Advanced Zola Cabs integrated with tkinter Graphical User Interface (GUI) made for ZOHO Corp. < Logs > username : zoho password : zoho [ Deve

Mastermind 9 Nov 18, 2021
Custom GUI for your Blender add-ons using Dear ImGui

Dear Imgui for Blender Use the infamous Dear ImGui library directly in your Blender scripts! This means custom GUI drawing in your operators: Normally

Elie Michel 65 Jan 30, 2022
FPKG Maker GUI - A user friendly User Interface for fPKG Tools for PS4

Know Issues being worked on Please place this application on the root of a drive

null 19 Feb 5, 2022
Rich.tui is a TUI (Text User Interface) framework for Python using Rich as a renderer.

rich.tui Rich.tui is a TUI (Text User Interface) framework for Python using Rich as a renderer. The end goal is to be able to rapidly create rich term

Will McGugan 8.1k Feb 10, 2022
Textual is a TUI (Text User Interface) framework for Python inspired by modern web development.

Textual is a TUI (Text User Interface) framework for Python inspired by modern web development.

Will McGugan 8k Feb 7, 2022
Kivy is an open source Python framework for creating cross-platform multi-touch mobile applications with Natural User Interface.

Kivy is an open source Python framework for creating cross-platform multi-touch mobile applications with Natural User Interface.

Grace Ugochi Nneji 2 Feb 8, 2022
A simple yet powerful TUI framework for your Python (3.7+) applications

A simple yet powerful TUI framework for your Python (3.7+) applications

null 470 Feb 15, 2022
A simple, yet powerful web GUI to manage your Wireguard server, powered by Flask.

Linguard Linguard aims to provide a clean, simple yet powerful web GUI to manage your WireGuard server, and it's powered by Flask. Read the docs for f

Jose Antonio Mazón San Bartolomé 73 Feb 1, 2022
A Python native, OS native GUI toolkit.

Toga A Python native, OS native GUI toolkit. Prerequisites Minimum requirements Toga requires Python 3. Python 2 is not supported. If you're on macOS,

BeeWare 3k Feb 16, 2022
A Python native, OS native GUI toolkit.

Toga A Python native, OS native GUI toolkit. Prerequisites Minimum requirements Toga requires Python 3. Python 2 is not supported. If you're on macOS,

BeeWare 2.9k Feb 2, 2022
Primeira interface (simples) desenvolvida em Python utilizando o PySimpleGUI

Interface-Python Sobre o projeto Primeira interface gráfica (simples) desenvolvida em Python utilizando o PySimpleGUI Interface Gráfica Tecnologias ut

Matheus Maia Alvarez 5 Dec 28, 2021
Projeto de mini-games de azar com interface gráfica utilizando Python e PySimpleGui.

Gambling Mini jogos de azar unidos em uma mesma interface gráfica, utilizando a linguagem de programação Python em conjunto com a biblioteca de interf

Clayton Garcia da Silva 3 Nov 19, 2021
This was my test project when i started to learn Python Tkinter. Its the simplest interface possible.

Rock-Paper-Scissors-Game- Project Description: This was my test project when i started to learn Python Tkinter. Its the simplest interface possible. R

Hassan Shahzad 2 Jan 17, 2022
A lightweight file-copying interface.

autosort A lightweight file-copying interface. Preview What is autosort? Autosort is a lightweight file-copying interface. It allows you to copy sever

null 32 Jan 15, 2022