Register - Login
Views: 87830182
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
12-14-17 07:05:41 PM

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


Posts: 248/461
EXP: 414553
For next: 26756

Since: 02-24-13
From: your dreams

Since last post: 54 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: 103


Posts: 3202/3297
EXP: 11225739
For next: 245667

Since: 04-29-08
From: FL

Since last post: 2 days
Last activity: 5 hours

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

Lantern Ghost
Don't mind me. Just passing through.
Level: 51


Posts: 658/757
EXP: 960256
For next: 53682

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

Since last post: 16 days
Last activity: 1 hour

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: 40


Posts: 249/461
EXP: 414553
For next: 26756

Since: 02-24-13
From: your dreams

Since last post: 54 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.124358 seconds
Script execution time: 0.005991 seconds
Total render time: 0.130349 seconds