Favorite cross-platform GUI solution?

cKGunslinger

Lifer
Nov 29, 1999
16,408
57
91
I've got a bit of code that compiles and runs in Windows, Windows w/Cygwin, and Linux. It builds a series of static libraries. I've got a little menu-driven console code that simply accepts numbered commands and invokes functions from these libraries and displays results (as text),a s well as writing image files to disk Everything is in ANSI C/C++ and builds with Visual Studio and G++.

Additionally, the libraries are actually creating/editing images (video frames) that I may want to display on screen.

My question is, what would you recommend as the simplest, most straightforward, cross-platform way to get a Window on the screen with a few radio buttons, drop downs, buttons, etc that can invoke those same C-functions from linked static libraries? As a stretch goal, this same window could also display my created images. As a stretch, stretch goal, I'd like to display these images as video frames (>30fps).

I'd really like to be able to include whatever I use as part of the same source code (nothing propriety with restrictive licensing, etc.) so that I have a stand-alone application with no real prerequisites, other than a standard OS-install. Also, I'd really rather not have to develop and test 2 separate code paths (one for Windows and another for Linux.)

I was thinking about maybe just requiring Python on all targets? Using OpenGL with GLUT? Something like Qt/GTK? Java? Some Web interface?

I come back to this every so often. My day job is writing deep algorithmic code for analysis work, so I never deal with outputs, other than dumping large arrays of data to file after hours/days of multi-core processing. So when I get something lighter that could use some GUI-help, I come looking again.. and nothing really looks different that it did before.
 

purbeast0

No Lifer
Sep 13, 2001
52,857
5,729
126
Personally I would use Java for this. That's just because it's what I'm probably most familiar with that can both be cross platform very easily since it runs in the JVM and because calling C code is pretty straight forward. If there was no C library involved I would do this in html/javascript.
 

Merad

Platinum Member
May 31, 2010
2,586
19
81
Qt is the de facto standard for building a C++ cross platform UI. You can use it free if your app is open source with a GPL or LGPL license. It's very, very powerful, but I don't know if I'd call it simple or straightforward.

I haven't personally used it, but Awesomium looks pretty interesting. It lets you embed a HTML/Javascript UI in a C++ (cross platform) or .NET (windows only) app. In theory it seems like it would give the ease of web-like UI that you get from Electron, but it should be much more performant since your application logic stays in native code.
 

MaxDepth

Diamond Member
Jun 12, 2001
8,758
43
91
Another vote for Qt.

Also, they offer Qt Creator for visual Python UI development, with functional demos too.