DearPyGui Versions Save

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

v1.4.0

2 years ago

News

Mostly a maintenance release but 2 new features have been added related to frame buffer output and saving images. We have primarily been focusing on internal refactoring to make maintenance and 3D engine integration easier. We have also been focusing on performance, although those improvements are not expected to be introduced until 1.5.

Notes:

  • Expect a raspberry pi release later this week.
  • We will be dropping Python 3.6 support after 1.4.1.
  • Expect a v1.4.1 release later this week (additional image formats for save_image(...) and output_frame_buffer(...) support for MacOS.

Changelog

Breaking Changes

None

Features

  • added save_image(...) (currently only support png, but 1.4.1 will add support for BMP, TGA, HDR, & JPG)
  • added output_frame_buffer(...) for Windows & Linux (MacOS will be in 1.4.1 released later this week)
  • added additional popup arguments

Fixes

  • fix (mvTreeNode): indent bleeding #1604
  • fix: get_item_configuration(...) type issue #1591
  • fix: reset plot tick labels issue #1590
  • fix: tree node handlers not registering when closed #1568
  • fix: mvKnobFloat enabled keyword #1563

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.3.1...v1.4.0

v1.3.1

2 years ago

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.

v1.3

2 years ago

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

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

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.

v1.2

2 years ago

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

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

v1.1.3

2 years ago

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

Changelog

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

v1.1.1

2 years ago

This is just a maintenance release.

Fixes

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

v1.1

2 years ago

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).

v1.0.1

2 years ago

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)

v1.0.0

2 years ago

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

v0.8.62

2 years ago

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