Register - Login
Views: 93207294
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
07-18-18 09:02:17 AM

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


Posts: 248/489
EXP: 479908
For next: 237

Since: 02-24-13

From: your dreams

Since last post: 5 days
Last activity: 1 day

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/3450
EXP: 12378957
For next: 292986

Since: 04-29-08

Pronouns: any
From: FL

Since last post: 26 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: 1045944
For next: 37896

Since: 02-19-12

From: Everywhere at once.

Since last post: 150 days
Last activity: 150 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: 41


Posts: 249/489
EXP: 479908
For next: 237

Since: 02-24-13

From: your dreams

Since last post: 5 days
Last activity: 1 day

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.145130 seconds
Script execution time: 0.009115 seconds
Total render time: 0.154244 seconds
Memory used: 524288