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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ara_imgui-1.3.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.2

File hashes

Hashes for ara_imgui-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b06ece2ae62dc03319e0dab88b317b193a4d3dea6cdcb25fc1e1b1ab7db5b6da
MD5 7ef99b354edcce5440a49de155d255c0
BLAKE2b-256 4a5de16679761b870ff5f73744d5f94f28ec9a17b86fb81de457b82433f3207b

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