ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Other Software > Developer's Corner

Lets talk about GUIs.

(1/4) > >>

alivingspirit:
Forget languages for a second, lets talk about GUI packages. It was the thing that always excited me the most about software development. There is something very satisfying about making and using a smooth and simple GUI and I have to marvel at the developers ingenuity. I have tried quite a few times to start learning GUI's of different types ( Tkinter, swing, QT, Wx ), but my progress has always been stunted by the lack of learning tools in this area. If you want to learn a language there are countless books to teach you the basics but when learning GUI packages the support always falls short on interesting material. Usually the packages come with a few basic examples and tutorials but its never really enough to get me off the ground. I guess its because for more advanced stuff they expect you to buy a builder, but a poor guy like me who wants and expects to be able to design it manually gets left to dust.
Please tell me about your experiences. Maybe you can share something to help me get out of this annoying mess.

housetier:
This is an interesting question, I hope it receives likewise interesting
answers.

I can't provide any help, for I have turned to web interfaces if I need an
interface.

f0dder:
I'm one of those sad nutcases that tend to do raw Win32 API GUI programming. It might be LEAN_AND_MEAN, but it's tedious and unportable... One of my missions is to drop Win32 in favor of WTL (still lightweight and unportable, but lots less tedious than raw API), and pick up an easier-to-use and more portable toolkit as well.

I don't know which one to "buy into", though. Qt looks rather comprehensive, but I was always kinda put off by license (dunno if that has changed) + the fact you need to use their preprocessor as a build step. wxWidgets also seemed pretty nice, but iirc resulted in pretty fatty binaries. There's also FLTK, which felt a bit incomplete when I looked at it last (over a year ago though, iirc :))

I'd prefer something that has platform-native looks and is relatively light-weight. On the other hand, for larger projects, it would probably be smartest to go all-in and get a toolkit that not only does GUI, but also abstracts other things like threading?

CWuestefeld:
If you're just starting out, DO NOT attempt the Win32 API unless you have medical experts standing by.

For a first experience, I think you'' do best with a platform including tool offering a visual form designer. That way you can let it do much of the boring minutiae while you get a handle (so to speak ;)) on the paradigm.

I would recommend one of the .Net languages with their WinForms API. The various Express packages (VB, C#) contain all the tools you need for free. The bonus here is that unlike many other form designers, they don't persist the definitions into resource files or their ilk. Instead, they actually generate code that directly implements your visual design. You can either ignore this for the time being while jumping into the event-driven programming model, or you can poke into it and examine the code it generates to see some real life examples.

Eóin:
I've done a fair amount of searching the net on this topic because I still haven't found a GUI toolkit I'm completely satisfied with either. Here's what little bits of info I have gathered, sorry about the C++ bias but that just where my own interested primary lies. Also I've only ever been interesting in a toolkit with at least offers the native look when running on Windows.

Personally I use WTL these days. It's pretty complete, even makes doing Aero apps which can still support Win2k easy as pie. The WTL Wiki has a nice list of other C++ GUI toolkits too which worth checking out.

Qt is GPL if you don't pay for commercial license, so that means a no for me but I'm sure others wouldn't see that as a problem.

Gtk (and the Gtkmm C++ bindings) actually seems nice, and apps can look very native on Windows. The runtime seems heavy but it's possible to install it form a standalone package meaning in theory all Gtk based apps could share the dlls. In practise though it's usually trial and error to remove the binaries which ship with GTK apps to make them use the system install runtime, and if your mixing version there is probably big potential for issues. Still though I've had success getting Claws Mail and ruby GTK apps to share the Gimp's runtime.

wxWidgets always seemed too heavy to me as f0dder already mentioned. There is a modernized version in the work, wxTNG, but it seems to be early days for that still.

What really caught my attention is a C++ only library, OMGUI. It seemed to be dead in the water for the last few months but just now I see it's moved hosting SF.net. This is definitely one I'll be keeping an eye on.

All in all though, unless you're prepared to pay for Qt I can't really seem any other comparable alternative. So I'll be sticking with WTL for the time being, maybe looking into the WINX extensions. If I decide to try and do a portable app in the future I'll seriously give OMGUI a try.

Navigation

[0] Message Index

[#] Next page

Go to full version