A cross-platform modern C++ GUI library with backends for SFML, SDL, GLFW, and raylib.
TGUI is a cross-platform GUI library for C++ that enables developers to create graphical user interfaces for applications and games. It solves the problem of building modern, widget-based UIs in C++ by providing a flexible library that works with multiple graphics backends like SFML, SDL, GLFW, and raylib. This allows integration into diverse projects without being locked into a single rendering framework.
C++ developers building desktop applications, games, or embedded systems who need a lightweight, cross-platform GUI solution. It's particularly useful for those already using SFML, SDL, GLFW, or raylib for graphics rendering.
Developers choose TGUI for its backend-agnostic design, allowing them to leverage existing graphics frameworks while using a consistent GUI API. Its cross-platform support and comprehensive widget set make it a practical alternative to heavier GUI toolkits or platform-specific solutions.
Cross-platform modern C++ GUI
Supports desktop, mobile, and web via Emscripten, as evidenced by the comprehensive OS support table in the README, making it versatile for cross-platform deployment.
Compatible with multiple graphics frameworks like SFML, SDL, GLFW, and raylib, allowing seamless integration into diverse C++ projects without locking into a single rendering engine.
Offers a modern set of UI widgets with detailed tutorials and examples on the website, facilitating the creation of interactive interfaces.
Maintained with CI testing, regular updates, and an active community on Discord and forums, ensuring reliable support and collaboration.
Each backend requires specific library versions (e.g., SDL >=2.0.18 for SDL_RENDERER), adding installation and configuration overhead that can complicate setup.
Does not use native OS GUI elements, so achieving a polished, consistent look across platforms requires manual theming effort, unlike frameworks with built-in OS themes.
Feature availability varies by backend, with some lacking full platform support (e.g., GLFW backends don't support mobile), as shown in the status table, leading to fragmentation.
Slint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C++, JavaScript, or Python apps.
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
✔️The smallest header-only GUI library(4 KLOC) for all platforms
Immediate Mode Plotting
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.