edition (the DPG), a cross-platform toolkit for GUI development in Python. The most important feature of the project is the use of multithreading and outsourcing of operations to the GPU to speed up rendering. The key goal of shaping the 1.0.0 release is to stabilize the API. Compatibility-breaking changes will now be proposed in a separate “experimental” module.
To ensure high performance, the bulk of the DearPyGui code is written in C ++ using thelibrary , designed for creating graphical applications in C ++ and offering a fundamentally different operating model. The source code is under the MIT license. Declared support for Linux, Windows 10 and macOS platforms.
The toolkit is suitable both for quickly creating simple interfaces and for developing complex specialized GUIs for games, scientific and engineering applications that require high responsiveness and interactivity. Application developers are offered a simple API and a set of traditional out-of-the-box elements such as buttons, sliders, radio buttons, menus, text forms, displaying images, and various layout methods for window elements. Of the advanced features, support for the formation of charts, graphs and tables is noted.
Additionally, a set of resource viewers, a nodal link editor, a skin inspection system, and freehand rendering elements suitable for creating 2D games are available. To simplify development, several utilities are supplied, including a debugger, a code editor, a documentation viewer, and a log viewer.
Dear PyGui implements the abstract API( ) typical for GUI libraries , but it is implemented on top of the Dear ImGui library, which works in mode (Immediate mode GUI). Retained mode means that the tasks of scene formation are taken over by the library, and in Immediate mode the rendering model is processed on the client side, and the graphics library is used only for the final output, i.e. the application each time issues commands for drawing all interface elements to form the next ready frame.
DearPyGui does not use the native widgets provided by the system, but renders its own widgets by calling the OpenGL, OpenGL ES, Metal and DirectX 11 graphics APIs, depending on the current operating system. More than 70 ready-made widgets are offered in total.