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. Learn more →
Top 23 C++ GUI Projects
-
They use a Dear ImGui, a C++ GUI library.
-
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.
-
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
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
-
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 -
-
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.
-
Project mention: [Cpp] Une assez grande liste de bibliothèques graphiques C ++ | /r/enfrancais | 2023-02-14
GuiLite
-
Windows UI Library
Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications
-
FTXUI
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
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)
-
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.
-
Project mention: Cairo – Open-Source 2D Graphics Layer/API with Fonts and Many Back-Ends | news.ycombinator.com | 2023-07-17
-
-
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
-
Project mention: Turn Markdown Tasks into Beautiful Kanban Board. Qt C++ & QML. No Electron. FOSS | news.ycombinator.com | 2023-07-27
-
Project mention: Yue: A library for creating native cross-platform GUI apps | news.ycombinator.com | 2023-07-29
-
-
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.
-
-
How about https://github.com/mikke89/RmlUi ?
-
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
C++ GUI related posts
- Stretching myself thin with Dear ImGui projects
- PCSX2 Disables Wayland Support
- The xtd 0.2.0 (beta) is growing 😀
- M2TW Engine Overhaul project just dropped an autosorting and battle camera update!
-
imgui VS lvgl - a user suggested alternative
2 projects | 3 Nov 2023
- RattleCAD
- WinUI 3 is now open source
-
A note from our sponsor - Onboard AI
getonboard.dev | 28 Nov 2023
Index
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 |