Open-source C++ projects categorized as GUI

Top 23 C++ GUI Projects

  • imgui

    Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

    Project mention: Stretching myself thin with Dear ImGui projects | dev.to | 2023-11-28

    They use a Dear ImGui, a C++ GUI library.

  • flameshot

    Powerful yet simple to use screenshot software :desktop_computer: :camera_flash:

    Project mention: lcd drawing tablet screen/pen viewport "mapped" over portion of screen, wayland | /r/linux4noobs | 2023-08-25

    First, conceptually this is what I mean: think about when using a good screen-capture/annotation tool like flameshot: you select a region of the screen, and "magic" you can "edit" it, "in situ". No, what I'm talking about wouldn't share any of the same technical underpinnings with the way flameshot works, it would be the live monitor output, not a raster dump of the screen made to look like it's live. And the annotating would be done on a different screen. But as a user, this is pretty similar.

  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.

  • cutter

    Free and Open Source Reverse Engineering Platform powered by rizin

    Project mention: If you're interested in eye-tracking, I'm interested in funding you | news.ycombinator.com | 2023-08-26

    Okay, so, your comment about a "Dasher + Guitar Hero music theory/improvisation practice program" just sent me down a huge rabbit hole...

    Well, rabbit hole(s) plural, I guess, most not directly related. :D

    Largely because I made the "mistake" of looking at your HN profile & discovering you're also in NZ & we seem to have somewhat overlapping interests (and an affinity for "bacon" in account names, apparently), so, some thoughts[0]... :)

    # Topic 1: Nissan Leaf VSP hacking

    After reading your recent posts (https://ianrrees.github.io//2023/07/03/vsp-hacking.html & https://ianrrees.github.io//2023/08/05/voltage-glitch-inject...) on this topic & noting your remark about wanting to try reverse engineering a firmware image, I found the following thesis PDF (via a brief google search for `"reverse engineer" "firmware" "Renesas"`):

    * "AUTOMOTIVE FIRMWARE EXTRACTION AND ANALYSIS TECHNIQUES" by Jan Van den Herrewegen https://etheses.bham.ac.uk/id/eprint/11516/1/VandenHerrewege...

    Not really what I was anticipating finding but seems relevant to your interests--I don't think it was already in your resource list.

    While the thesis addresses the Renesas 78K0 rather than the Renesas 78K0R, from a brief look at the "Flash Protection" PDF Application Note in your resource list it seems there's a large overlap.

    Perhaps most significantly the author presents "novel methods" that combine bootloader binary analysis with constraint-based power glitching in an effort to improve on the results described in "Shaping the Glitch".

    While I haven't read the entire 186 pages :D they theorize that using their approach extracting 8kB firmware might only take ~10 hours.

    And, most helpfully, they even published their source code under the GPL here: https://github.com/janvdherrewegen/bootl-attacks

    So, an interesting adjacent read even if it turns out not to be directly applicable to your situation.

    Given I have an interest in & a little experience with firmware reversing my original thought was to maybe provide some hopefully helpful references that more generically related to firmware reversing but more specific is good too, I guess. :)

    In terms of reverse engineering tooling, I've used Rizin/Cutter/radare2 previously: https://rizin.re https://cutter.re

    On the CAN tooling/info front, you might be interested in taking a look at my "Adequate CAN" list which I originally wrote-up for a client a couple years ago: https://gitlab.com/RancidBacon/adequate-can

    Some other probably outdated reverse engineering tooling links of mine: https://web.archive.org/web/20200119074540/http://www.labrad...

    In terms of how to approach RE, other than just "getting started & digging in" & learning by doing, I've sometimes found it informative to read other people's firmware reverse engineering write-ups to learn about potentially useful approaches/tools.

    Anyway, hopefully some of this is helpful!

    [0] I have a tendency to be a little... "verbose" and/or "thorough" (depending on one's POV :) ) so I'll probably split this over a couple of comments, in case I run out of steam while writing and for topic separation.

  • DearPyGui

    Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

    Project mention: Need help with text alignment | /r/DearPyGui | 2023-05-29

    If it's just to align text in the centre or to the right of a box, you could use a button and, by using theming, hide the fact that it's a button. https://github.com/hoffstadt/DearPyGui/issues/1111

  • Open3D

    Open3D: A Modern Library for 3D Data Processing

    Project mention: Does anyone else agree that the links to the latest development version of Open3D don't work? | /r/cscareerquestions | 2023-07-10

    I was going to file a bug about another issue, but I have to download the development version. This is why I want this solved quickly. None of the links seem to work: https://github.com/isl-org/Open3D/issues/6259

  • nodegui

    A library for building cross-platform native desktop applications with Node.js and CSS 🚀. React NodeGui : https://react.nodegui.org and Vue NodeGui: https://vue.nodegui.org

    Project mention: Build performant, native and cross-platform desktop apps with Node.js and CSS | news.ycombinator.com | 2023-11-14
  • Stacer

    Linux System Optimizer and Monitoring - https://oguzhaninan.github.io/Stacer-Web

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • GuiLite

    ✔️The smallest header-only GUI library(4 KLOC) for all platforms

    Project mention: [Cpp] Une assez grande liste de bibliothèques graphiques C ++ | /r/enfrancais | 2023-02-14


  • Windows UI Library

    Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications

    Project mention: WinUI 3 is now open source | news.ycombinator.com | 2023-10-24

    Features: - Functional style. Inspired by [1] and React - Simple and elegant syntax (in my opinion). - Support for UTF8 and fullwidth chars (→ 测试). - No dependencies. - Cross platform. Linux/mac (main target), Windows (experimental thanks to contributors), - WebAssembly. - Keyboard & mouse navigation. Operating systems: - linux emscripten - linux gcc - linux clang - windows msvc - mac clang

    Project mention: Library for NES style terminal game. | /r/cpp_questions | 2023-09-30

    Background: I want to make a NES Tetris) clone for the terminal, with full resolution, this is achievable through using this ▀ character, and defining back and foreground color. This would result in a 1x2 pixel and by making the game width 256x120 characters this would provide full resolution. I made some tests, creating my own encoding for the different sprites and optimizing everything, which resulted in very quick printing times, even with a normal terminal. Nearly fast enough for the full 60Hz that the NES has, when printing the whole screen. The fact that i don't need to reprint the background (except maybe a tetris), makes 60Hz a kinda realistic goal. My main concern is, that there could occur kind of a screen tearing effect, which i really want to avoid. AFAIK, ncurses has a way to print the whole "window" with a function call to avoid this issue, however I had a lot of issues when trying to use ncurses to print the entire background and figured, that there are better alternatives. I also tried FTXUI and whilst the experience of giving each "pixel" a fore- and background color was much better, i didn't quite find a way to refresh the screen like ncurses. (i think there is some kind of way with the ScreenInteractive class, but i didn't get that to work, and it seemed like there was not a way to color each pixel. with InteractiveScreen you can make your own components with the whole "text()" thing, but this isn't really what i need)

  • Duilib

  • wxWidgets

    Cross-Platform C++ GUI Library

    Project mention: Building Apps with Tauri and Elixir | dev.to | 2023-10-19

    The Elixir programming language is no stranger to desktop applications as the language actually supports building them out of the box. It uses wxWidgets: a C++ library that lets developers create applications for Windows, macOS, Linux and other platforms with a single code base. But wxWidgets has a very complex API, and doesn’t solve issues that usually come with desktop applications around packaging.

  • NanoGUI

    Minimalistic GUI library for OpenGL

    Project mention: Cairo – Open-Source 2D Graphics Layer/API with Fonts and Many Back-Ends | news.ycombinator.com | 2023-07-17
  • implot

    Immediate Mode Plotting

    Project mention: ImPlot: Interactive plotting library, ImGui style | /r/hypeurls | 2023-08-06
  • ricochet

    Anonymous peer-to-peer instant messaging

    Project mention: Open source P2P alternative to Slack and Discord built on Tor and IPFS | news.ycombinator.com | 2023-09-11

    This looks like a much more polished alternative to Ricochet: https://github.com/ricochet-im/ricochet

  • notes

    Fast and beautiful note-taking app written in C++. Write down your thoughts.

    Project mention: Turn Markdown Tasks into Beautiful Kanban Board. Qt C++ & QML. No Electron. FOSS | news.ycombinator.com | 2023-07-27
  • Yue

    A library for creating native cross-platform GUI apps

    Project mention: Yue: A library for creating native cross-platform GUI apps | news.ycombinator.com | 2023-07-29
  • Elements C++ GUI library

    Elements C++ GUI library

    Project mention: declarative GUI libraries | /r/cpp | 2023-06-23
  • sciter

    Sciter: the Embeddable HTML/CSS/JS engine for modern UI development

    Project mention: Rusty revenant Servo returns to render once more | news.ycombinator.com | 2023-09-27

    I've still never used it but I've long been curious about Sciter:


  • GacUI

    GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features.

  • nana

    a modern C++ GUI library

  • RmlUi

    RmlUi - The HTML/CSS User Interface library evolved

    Project mention: declarative GUI libraries | /r/cpp | 2023-06-23

    How about https://github.com/mikke89/RmlUi ?

  • Qt

    Qt Base (Core, Gui, Widgets, Network, ...)

    Project mention: Current Issues With The Qt Project - From The Outside Looking In | /r/QtFramework | 2023-04-20

    Qt mono repo : .. you could check out all submodules and simply use CMake to exactly achieve this. A mono repo also means that if I only use qtbase and declarative, I would need to have all submodules in there? - No

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-11-28.

C++ GUI related posts


What are some of the best open-source GUI projects in C++? This list will help you:

Project Stars
1 imgui 51,905
2 flameshot 22,122
3 cutter 14,259
4 DearPyGui 11,440
5 Open3D 9,744
6 nodegui 8,589
7 Stacer 8,585
8 GuiLite 6,964
9 Windows UI Library 5,841
10 FTXUI 5,476
11 Duilib 5,440
12 wxWidgets 5,415
13 NanoGUI 4,429
14 implot 3,984
15 ricochet 3,671
16 notes 3,370
17 Yue 3,173
18 Elements C++ GUI library 2,769
19 sciter 2,546
20 GacUI 2,210
21 nana 2,179
22 RmlUi 2,158
23 Qt 2,127
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives