Home

Awesome

completion Documentation Status Build status

pyimgui

Python bindings for the amazing dear imgui C++ library - a Bloat-free Immediate Mode Graphical User Interface.

Documentation: pyimgui.readthedocs.io

Notes for contributions:

Installation

pyimgui is available on PyPI so you can easily install it with pip:

pip install imgui[full]

Above command will install imgui package with additional dependencies for all built-in rendering backend integrations (pygame, cocos2d, etc.). If you don't want to install all additional dependencies you can always use bare pip install imgui command or select a specific set of extra requirements:

Package is distributed in form of built wheels so it does not require compilation on most operating systems. For more details about compatibility with diffferent OSes and Python versions see the Project ditribution section of this documentation page.

Project status

The Python imgui package supports most core Dear ImGui widgets and functionalities. It is based on Dear ImGui version 1.82 (released on March 15, 2021). Some lower-level API elements and complex widgets (such as plots) are not fully integrated.

Work was initiated to add support for the Docking branch of ImGui (see related issue and branch). However, maintaining pace with ImGui’s latest updates has proven challenging, as these bindings are written manually.

pyimgui remains a solid choice for building immediate mode UIs. However, for those who require the latest Dear ImGui features (like docking or new widgets), alternative bindings may provide more up-to-date support.

Autogenerated bindings:

These bindings ensure closer alignment with the latest ImGui features without the manual overhead.

Other alternatives:

Project distribution

This project has a working build pipeline on Appveyor. It builds succesfully for all major operating systems with different architectures:

Right now we are ready shipping the built wheels for these three systems (even for Linux using manylinux1 wheels). The build pipeline covers multiple Python versions:

Note: We dropped support for py27, py33, py34, and py35 starting from release 2.0. Those were supported until release 1.4.0. Pypy is only supported since release 2.0.

If none of these wheels work in your environment you can install the imgui package by compiling it directly from sdist distribution using one of following commands:

# will install Cython as extra dependency and compile from Cython sources
pip install imgui[Cython] --no-binary imgui

# will compile from pre-generated C++ sources
pip install imgui --no-binary imgui

pyimgui provides documentation with multiple visual examples. Thanks to custom Sphinx extensions, we are able to render GUI examples off-screen directly from docstring snippets. These examples work also as automated functional tests. Documentation is hosted on pyimgui.readthedocs.io.

Contributing

Contributions are welcomed. If you want to help us by fixing bugs, mapping functions, or adding new features, please feel free to do so and propose a pull request.

Development tips and information for developers are given in HACKING.md.