Skip to main content

A simplified wrapper for Dear ImGui and GLFW

Project description

Ara_imgui

Ara_imgui is a lightweight and easy-to-use wrapper around Dear ImGui using Python and GLFW. It simplifies GUI application development with ImGui by providing a convenient interface for managing windows, fonts, and application lifecycle.

Features

  • Simple ImGui app launch with a single run function
  • Support for multiple ImGui windows via the Window class
  • Built-in dark and light themes
  • System or custom font loading, including Cyrillic support
  • Ready-to-run examples included in the examples folder

Installation

pip install ara_imgui

Or install dependencies manually:

pip install glfw PyOpenGL imgui

⚠️ Make sure you have Python 3.7+ and OpenGL support (e.g., via GPU drivers on Windows).

Usage

Basic example

from ara_imgui import run, imgui

def gui():
    imgui.text("Hello, world!")
    if imgui.button("Click me"):
        print("Clicked!")

run(gui)

Multiple windows

from ara_imgui import App, Window, imgui

app = App("Multi-window App")

def win_ui():
    imgui.text("This is another window")

win = Window("Extra Window", frame_ui=win_ui)

def main_ui():
    imgui.text("Main Window")  
    if imgui.button("Open Extra Window"):
        app.add_window(win)

app.run(main_ui)

Custom fonts and themes

from ara_imgui import App, imgui

app = App("Font Example")
app.apply_theme("light")
app.load_font(font_size=18)

def gui():
    imgui.text("Sample text with custom font")

app.run(gui)

API

run(frame_ui, **kwargs)

Minimal interface to launch the application.

Parameters:

  • frame_ui: Function to render the main UI.
  • callback: Function called after frame_ui (optional).
  • title: Window title.
  • width, height: Window size.
  • theme: "dark" or "light".
  • custom_font: False, True, or path to a .ttf file.
  • font_size: Font size.
  • cyrillic_ranges: Include Cyrillic character ranges (True by default).

Classes

  • App — The main application class.
  • Window — Represents a separate ImGui window with its own logic.

Examples

See the examples/ folder:

  • hello_world.py — Basic "Hello, world!" with a button.
  • basic_window.py — Simple window with input field.
  • custom_font.py — Font and multilingual text rendering.
  • multiple_window.py — GUI with multiple ImGui windows.

Dependencies

  • imgui
  • glfw
  • PyOpenGL

License

MIT License. Free to use and modify.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ara_imgui-1.0.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ara_imgui-1.0.0-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file ara_imgui-1.0.0.tar.gz.

File metadata

  • Download URL: ara_imgui-1.0.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for ara_imgui-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b387ac5e0d53a426cfcfd91dd0f8d0c0274d81b84935c22d3aae2e433ad98eca
MD5 ca46c9ed63d8580d573e9516ca2f3ca8
BLAKE2b-256 5d444e5842daca3b28c79b204c6b4ca04b44296d3bb6cbf129f0b865c78dcb00

See more details on using hashes here.

File details

Details for the file ara_imgui-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ara_imgui-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for ara_imgui-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0484429e30aff4863eed0105a06d2042ad7b41fd6c961f7dc77c120954598f15
MD5 2ac7a1b402dcadb7e396d9e897e19973
BLAKE2b-256 4ca91de0471c320c81c41b3ea54ec091171000e62e5ad302aad38e65bac61e54

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page