Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Widgets

Dear ImGui Bundle includes a variety of additional widgets beyond the standard ImGui set.

Full Demo

Widgets demo showcasing knobs, toggles, spinners, coolbar, and more.

Widgets demo showcasing knobs, toggles, spinners, coolbar, and more.

Try online | Python | C++

imgui-knobs - Rotary Knobs

Introduction

imgui-knobs adds rotary knob widgets similar to those found in audio software.

imgui-knobs: rotary knobs with multiple visual styles.

imgui-knobs: rotary knobs with multiple visual styles.

Knob variants: tick, dot, wiper, wiper_only, stepped

Quick Example

Python
C++
from imgui_bundle import imgui_knobs, immapp

value = 50.0

def gui():
    global value
    changed, value = imgui_knobs.knob("Volume", value, 0.0, 100.0)

immapp.run(gui)

Documented APIs

imgui_toggle - Toggle Switches

Introduction

imgui_toggle provides iOS-style toggle switches.

imgui_toggle: iOS-style toggle switches with animations.

imgui_toggle: iOS-style toggle switches with animations.

Quick Example

Python
C++
from imgui_bundle import imgui_toggle, immapp

enabled = False

def gui():
    global enabled
    changed, enabled = imgui_toggle.toggle("Enable feature", enabled)

immapp.run(gui)

Documented APIs

imspinner - Loading Spinners

Introduction

imspinner provides a large collection of animated loading spinners.

Quick Example

Python
C++
from imgui_bundle import imspinner, imgui, immapp

def gui():
    imspinner.spinner_ang_triple(
        "spinner",
        radius1=16, radius2=13, radius3=10,
        thickness=3,
        c1=imgui.ImColor(255, 255, 255),
        c2=imgui.ImColor(255, 100, 100),
        c3=imgui.ImColor(100, 100, 255)
    )

immapp.run(gui)

Documented APIs

ImCoolBar - macOS-style Dock Bar

Introduction

ImCoolBar creates a macOS-style dock bar with magnification effect on hover.

ImCoolBar: macOS-style dock bar with magnification effect.

ImCoolBar: macOS-style dock bar with magnification effect.

Documented APIs

imgui-command-palette - VSCode-style Command Palette

Introduction

imgui-command-palette adds a Sublime Text / VSCode style command palette.

imgui-command-palette: VSCode-style command palette.

imgui-command-palette: VSCode-style command palette.

Full Demo

Try online | Python | C++

Documented APIs

File Dialogs

Dear ImGui Bundle provides two file dialog libraries.

portable-file-dialogs

portable-file-dialogs uses native OS dialogs for file selection, notifications, and messages.

portable-file-dialogs: native OS dialogs on all platforms.

portable-file-dialogs: native OS dialogs on all platforms.

Quick Example

Python
C++
from imgui_bundle import portable_file_dialogs as pfd

# Open file dialog (native OS)
selection = pfd.open_file("Select a file", ".", ["Image Files", "*.png *.jpg"])

# Message box
pfd.message("Title", "Message content", pfd.choice.ok, pfd.icon.info)

Documented APIs

ImFileDialog

ImFileDialog is a file dialog library with a modern look.

ImFileDialog: modern file dialog with preview support.

ImFileDialog: modern file dialog with preview support.

Quick Example

Python
C++
from imgui_bundle import im_file_dialog as ifd, imgui, immapp

def gui():
    if imgui.button("Open File"):
        ifd.FileDialog.instance().open(
            "OpenFile", "Open a file", "Image files (*.png;*.jpg){.png,.jpg},.*"
        )

    if ifd.FileDialog.instance().is_done("OpenFile"):
        if ifd.FileDialog.instance().has_result():
            result = ifd.FileDialog.instance().get_result()
            print(f"Selected: {result}")
        ifd.FileDialog.instance().close()

immapp.run(gui)

Documented APIs