User forums > General (but related to Code::Blocks)
Which widget library do you mostly use?
sethjackson:
Well I started with the Win API..... Now I use wxWidgets. No I didn't vote for the Win API. I voted for wxWidgets. :)
Some thoughts on these toolkits:
QT - umm yeah, but what is this meta-compiler thingamajig I keep hearing about?
wxWidgets - this is the one I voted for/have used.
SmartWin++ - MFC replacement (Windows only).
Win32 API - Windows only. Not too bad once you get used to it. You have to use casts too much.
GTK2 - C interface. Looks quite bad on Windows.
VCF - this is the only one I have never heard of.
FOX Toolkit - don't like the website. (doesn't mean the interface is bad though).
Others:
FLTK - website looks horrible (doesn't mean the interface is bad though). :lol:
OMGUI - weird interface (again IMO).
Ultimate++ - never used it.
thomas:
Am using wxWidgets because I must (as Code::Blocks is built on top of it), otherwise use Win32 API for Windows, FLTK for Linux.
Win32 API
Win32 is a PITA, not a toolkit, and not cross-platform, either. But well, it still works, somehow.
QT
Meta-Voodoo is scaring me.
FLTK
Extremely cool, extremely high performance, lightweight toolkit. There is an UI designer coming with it, the toolkit is well-made, and FLTK executables only have a few dozen kilobytes of overhead (compare that to the size of a minimum wxWidgets program!). It does not have a gizmo for every gimmick like wxWidgets, but it has all you need to write a nice GUI program, and it is really low fat.
Unluckily, their website sucks big time which is probably why they don't have a community (and as much 3rd party stuff) as wxWidgets.
Information and the first impression for a would-be user is extremely bad. You start off with two sites (fltk.org and fltk.net) which apparently develop the same thing, but they look completely different and are run by different teams. The only thing they have in common is that they both look bad.
After a while, you find out that there is a 1.x branch and a 2.x branch, and you learn that 2.x is doing things like UI theming, but you still look for "how to use this thing in 5 minutes" in vain. Building FLTK under Windows is not quite trivial either, the readme tells you to look at another file which points at yet another file that contains instructions which don't work. In one word, it is a pain to get started (unless you use the binary DevPak). This is very counter-productive for acquiring new users and for finding developers. Luckily, it is much less of a pain under Linux, thanks to RPM.
All in all, this bad first impression that you get from FLTK is a shame, because I think that FLTK is really an excellent toolkit which could without any doubt be the number 1 choice for many people if the developers polished it up a bit here and there and made a few things easier to understand, but as it is now they scare off every user but the most hard-boiled ones.
wxWidgets
It's a piece of crap, but at least you can get it to work somehow, it has a big community, lots of 3rd party stuff, and it is widely supported. It is relatively easy to set up and very well documented (even though the documentation has some severe mistakes)
wxWidgets costs you endless hours of swearing when doing anything more complicated than a window with a menu bar and an about box. Many things are implemented very inefficiently and some make you bang your head on the table. In particular, the widespread macro abuse is a nuisance -- it is ugly to read, code completion does not handle it, error messages are misleading, and debugging is a nightmare.
However, on the good side, it mostly works somehow. Your executables are bloated and you'll never get top performance, but well... they still somehow work, and you can port them to many different platforms without having to do too many changes.
SmartWin++
Very cool, basically a huge collection of templates around Win32. Not cross-platform, and a project cannot be compiled without exceptions (which you sometimes might want to do for reasons of performance and size).
Ultimate++
Ulitmately scary code style. They do know C++ for sure, and they know how to write compact sources, and sure enough you can write programs that way, but the coding style is well... not my style.
OMGUI
Tried once a while ago, could not get it to run. Nevertheless it looks promising and certainly could become a very good toolkit some time in the future (presently in pre-alpha stage).
This is definitively something I'll be looking into again in maybe 6 or 8 months.
VCF
Never heard of.
Fox Toolkit
Looked at that once many months ago. The website is very nice, information is excellent.
Has even more macro abuse than wxWidgets, which scared me off within minutes. Maybe a wrong decision, as it might really be a good one.
Code Medic:
Some time ago I was deciding on which widget to choose and stumbled on this article at freshmeat.
http://freshmeat.net/articles/view/928/
It is quite old but they talk about something called blocking/non-blocking main loop, in their comparisons.
Anyone has any idea what that means and how it affects performance?
Cheerio
Code Medic:
--- Quote from: thomas on June 25, 2006, 02:20:22 pm ---wxWidgets
It's a piece of crap, but at least you can get it to work somehow, it has a big community, lots of 3rd party stuff, and it is widely supported. It is relatively easy to set up and very well documented (even though the documentation has some severe mistakes)
wxWidgets costs you endless hours of swearing when doing anything more complicated than a window with a menu bar and an about box. Many things are implemented very inefficiently and some make you bang your head on the table. In particular, the widespread macro abuse is a nuisance -- it is ugly to read, code completion does not handle it, error messages are misleading, and debugging is a nightmare.
However, on the good side, it mostly works somehow. Your executables are bloated and you'll never get top performance, but well... they still somehow work, and you can port them to many different platforms without having to do too many changes.
--- End quote ---
Things I like about wxWidget is its cross platform compatibility and ability to use native widgets if available... or fall back to its own.
FLTK impressed me quite well but as you said.. its website and documentation seems scary... I think I shud use it for some small project and see. BTW, any idea whether they use native widgets as well?
Cheerio
thomas:
--- Quote ---called blocking/non-blocking main loop, in their comparisons.
Anyone has any idea what that means and how it affects performance?
--- End quote ---
Blocking means that the message loop blocks in a syscall, i.e. the thread is taken off the scheduler until an event occurs (at which time the kernel puts it onto the scheduler again).
This is slightly more efficient than non-blocking insofar as the message loop takes exactly zero CPU cycles as long as no messages arrive, whereas a polling message loop still burns a few cycles. However, it has disadvantages, too. Obviously, as long as the thread is blocking, it does exactly nothing. For some applications, that's exactly what you want, for others, that's the opposite of what you want (you can of course work around it, for example with a timer).
In the end, it probably does not matter much which one you choose. Both blocking and non-blocking are ok, each one has some advantages and some disadvantages.
--- Quote ---any idea whether they use native widgets as well?
--- End quote ---
No (and yes... there is support for a native file selector box), but that's not really a disadvantage. Actually it is a pretty cool feature. As version 2 is going to be fully themable, you'll have look and feel switching pretty much like Java does. If there is one thing about Java/Swing that is *really* cool, then it is that you can switch the UI look and feel.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version