Skip to content

Version 1.0.0

Compare
Choose a tag to compare
@hoffstadt hoffstadt released this 13 Oct 05:55
· 2901 commits to master since this release

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

dpg-music-bars.mp4
Nse1cKzX7G.mp4