Recently the release of the new version of Dear PyGui 1.0.0 was announced (the DPG), which is positioned as a cross-platform framework 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 version 1.0.0 is to stabilize the API. Changes that break compatibility will now be offered in a separate "experimental" module.
To ensure high performance, most of the DearPyGui code is written in C ++ using the Dear ImGui library which is designed to create graphical applications in C ++ and offer a fundamentally different operating model.
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 have a simple API and a set of traditional elements out of the box, such as buttons, sliders, radio buttons, menus, text forms, image display, and various design methods for window elements. Of the advanced functions, the support for the formation of charts, graphs and tables stands out.
In addition, a set of resource viewers, a node link editor, a skin inspection system and rendering elements are available Freehand suitable for creating 2D games. To simplify development, several utilities are provided, including a debugger, a code editor, a documentation viewer, and a log viewer.
Dear PyGui implements the API abstract mode of operation (retained mode) typical of GUI libraries, but implemented on top of the Dear ImGui library, which operates on IMGUI (GUI immediately).
Retained mode means that the library takes over the scene shaping tasks, while in Immediate mode the rendering model is rendered on the client side and the graphics library is used only for the final output, i.e. the application each time it issues commands to draw all the interface elements to form the next ready frame.
DearPyGui it does not use the native widgets provided by the system, but generates its own widgets by calling the graphics APIs OpenGL, OpenGL ES, Metal, and DirectX 11, depending on the current operating system. A total of more than 70 ready-to-use widgets are offered.
In the new version it is mentioned that it should have the least amount of errors to date even though this does not rule out that there may be some regression errors, as many of the underlying systems have been completely refactored from 0.8 and there is still a significant regression testing setup. The main focus of this release was stabilizing the API, which we have now done. Current issues need to be reevaluated for this release.
In addition to this, a large number of new commands have been added to the utility, along with a new experimental module and especially with the elimination of various commands that have already become obsolete.
Of the other changes that stand out from this new version:
- User must create Dear_PyGuicreate_context () context before calling any DPG command
- dragPayload changed drag_data is sent to targets in drag_callback instead of drop_callback
- moved the logger and themes to DearPyGui_Ext
- table rows are now required
- remote bind_item_disabled_theme ()
- remote bind_item_type_disabled_theme ()
- remote bind_item_type_theme ()
- Now the user must create, configure and display the viewport before starting dpg.
- "Create_viewport () -> setup_dearpygui () -> show_viewport () -> start_dearpygui ()"
- add_theme_color () and add_theme_style () must know how to belong to a theme_component
Finally if you are interested in knowing more about it about Dear PyGui or you also want to know how to install this tool on your system, you can do it from the following link.
It is also important to mention that the Dear PyGui source code distributed under the MIT license. Declared support for Linux, Windows 10, and macOS platforms.