Register - Login
Views: 85599689
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
09-20-17 07:53:28 PM

Jul - Computers - UI toolkits: a hard choice New poll - New thread - New reply
Next newer thread | Next older thread
StapleButter
Member
Level: 39


Posts: 248/459
EXP: 401754
For next: 3017

Since: 02-24-13
From: your dreams

Since last post: 16 days
Last activity: 7 days

Posted on 05-05-16 06:12:46 PM Link | Quote
For a potential project of mine, I wonder what UI toolkit I should go with.


Native

Would require recoding the UI for each platform (and we see the mess that is with desmume for example).

Also, worth noting that the Win32 API is ugh.



Qt

It's good, full-featured... maybe too much. It has tons of things, reinvents/wraps everything (even strings go through QString), etc...

Also not a fan of the design, which is clearly inspired from Java. For example in Java you find yourself constantly importing new classes as you code. Same shit in Qt where every class requires its own #include.



wxWidgets

This one is more lightweight, and uses native widgets directly. Makes sense, but that comes with its share of issues (native widgets on each platform each have their own quirks and differences).

Also, was clearly built around the Win32 API.



GTK & co.

"Portable". The Windows version is a lazy port that requires you to bring half of Linux into Windows, and looks alien due to using its own widget styles.



So eh... dunno what to go with. There are new toolkits out there, but they tend to be those hipster toolkits that are basically a browser in which you put a fixed webpage that is your app. I want to code a program, not a website!

Have any idea? Might go with Qt, but eh, not a fan of bloat.
devin

Wart
i'm mima irl
Level: 102


Posts: 3202/3292
EXP: 11063995
For next: 25972

Since: 04-29-08
From: FL

Since last post: 21 days
Last activity: 2 days

Posted on 05-05-16 06:32:37 PM (last edited by devin at 05-05-16 06:33:46 PM) Link | Quote
Don't use native APIs, there is literally no advantage.

I've been a proponent of Qt for a while now. Aside from the size, it has a great form/widget editor, really simplified event/message handling (especially since Qt 5 added the ability to connect signals to lambdas in C++11) and generally does a pretty solid job with native look and feel on each platform.

Some of the "reinvented" classes were sort of necessary just because Qt itself predates widespread STL support, but they have other advantages - the entire Qt API is designed to almost never throw exceptions, and the interfaces tend to be nicer / more robust than their STL counterparts.

As for the #include thing, you can just as easily i.e. "#include <QtWidgets>" and get every relevant public header all at once (at the expense of compile time, obviously).
Cuber456

Melon Bug
Don't mind me. Just passing through.
Level: 50


Posts: 658/745
EXP: 918576
For next: 28741

Since: 02-19-12
From: Everywhere at once.

Since last post: 34 days
Last activity: 3 hours

Posted on 05-05-16 07:09:04 PM Link | Quote
Originally posted by StapleButter

Native

Would require recoding the UI for each platform (and we see the mess that is with desmume for example).

Also, worth noting that the Win32 API is ugh.


How many platforms do you expect your program to reach? Are you expecting it to reach every possible place (Windows, Linux, Mac, beyond) or do you expect that your most likely person to use your program is using Windows?


Originally posted by StapleButter

Qt

It's good, full-featured... maybe too much. It has tons of things, reinvents/wraps everything (even strings go through QString), etc...

Also not a fan of the design, which is clearly inspired from Java. For example in Java you find yourself constantly importing new classes as you code. Same shit in Qt where every class requires its own #include.


Does it have features you will use? If not then don't use it unless there is simplicity in using it.

Originally posted by StapleButter

wxWidgets

This one is more lightweight, and uses native widgets directly. Makes sense, but that comes with its share of issues (native widgets on each platform each have their own quirks and differences).

Also, was clearly built around the Win32 API.


There is something to be said for being lightweight.

Originally posted by StapleButter

GTK & co.

"Portable". The Windows version is a lazy port that requires you to bring half of Linux into Windows, and looks alien due to using its own widget styles.


Honestly, that sounds like a mess to me.


Everything I said was to get you thinking. You are the ultimate judge since you are the one going in knee deep. What you really want is the following:
1. The toolkit has good documentation.
2. The toolkit is still actively being developed.

It's awful trying to use something that has shitty documentation. A toolkit that is still in active development is nice because it opens the possibilities for your GUI in the future as well as possible bug fixes that exist in the current software.
StapleButter
Member
Level: 39


Posts: 249/459
EXP: 401754
For next: 3017

Since: 02-24-13
From: your dreams

Since last post: 16 days
Last activity: 7 days

Posted on 05-05-16 07:13:18 PM Link | Quote
My primary OS is Windows, I might also port it to Linux. I won't be dealing with MacOS because I don't have a Mac. It would be a desktop program.


I might go with Qt, but eeeh.
Next newer thread | Next older thread
Jul - Computers - UI toolkits: a hard choice New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 2f1bc75 [2017-08-27]
©2000-2017 Acmlm, Xkeeper, Inuyasha, et al.

28 database queries, 1 query cache hits.
Query execution time: 0.163340 seconds
Script execution time: 0.005471 seconds
Total render time: 0.168811 seconds