Register - Login
Views: 95210938
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
09-24-18 11:01:06 PM

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


Posts: 248/492
EXP: 492691
For next: 28671

Since: 02-24-13

From: your dreams

Since last post: 4 hours
Last activity: 1 hour

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

King Bowser Koopa
i'm mima irl
Level: 106


Posts: 3202/3462
EXP: 12557424
For next: 114519

Since: 04-29-08

Pronouns: any
From: FL

Since last post: 3 days
Last activity: 1 day

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

Fuzzy
Don't mind me. Just passing through.
Level: 52


Posts: 658/776
EXP: 1061154
For next: 22686

Since: 02-19-12

From: Everywhere at once.

Since last post: 218 days
Last activity: 218 days

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


Posts: 249/492
EXP: 492691
For next: 28671

Since: 02-24-13

From: your dreams

Since last post: 4 hours
Last activity: 1 hour

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 and Technology - UI toolkits: a hard choice New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 5d36857 [2018-03-03]
©2000-2018 Acmlm, Xkeeper, Inuyasha, et al.

28 database queries, 1 query cache hits.
Query execution time: 0.146120 seconds
Script execution time: 0.009146 seconds
Total render time: 0.155266 seconds
Memory used: 524288