The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

wxWidgets or Qt or Gtk or ???

I've been working as a system programmer using C/C++.Now I've to develop a GUI application with C++ but I do not have any experience with GUI programming.

Can you guys assist me to choose which one I've to learn. I'm just looking nice interface look and of course easy to learn.

Thanks a lot for you suggestions and thoughts.

mark Send private email
Sunday, October 05, 2008
For your purposes, go with Qt if you plan to work in C++. If you'll be using C, Gtk is your only option.
Sunday, October 05, 2008
Random Observer Send private email
Monday, October 06, 2008
If you must use C++, go with Qt if money is no object. Otherwise, use wxWidgets if you want FOSS. You can safely ignore the rest (ie the link in Random Observer's post above).

p.s. IMO, GTK looks horrible on all platforms. I wouldn't touch it with a 10-foot pole, but your opinions my vary.
Monday, October 06, 2008
First, I have used both and they are both very good.

WX is free, has a very good community and lots of online help / tutorials and examples. The C++ design is a little old, based on MFC style macros - but this means it will compile on anything.

QT is free for GPL otherwise around £3K. There are a number of books and trainign courses but I don't feel there is quite the same community support on mailing lists.
It uses it's own extentions to C++ for a signal/slot mechanism to pass message btween gui components. This is an excellent design (IMHO) but can leave you scratching your head about an error if you miss something out.

Both use a modern automatic arrangement approach to fitting dialogs together and have a visual designer. Much better than the absolute pixel MS appraoch,
Both are mutli platform and abstract away a lot of differences in threading / filesystems / networking etc.

Having said all that, gui programming is very different to start at the top, execute to the end style programs.
If you just need to get something done, you might want to look at a simple gui toolkit with fewer controls and less fancy layout but a smaller learning curve - eg . FLTK
Martin Send private email
Monday, October 06, 2008
You might want to look at C++ Builder from Borland (or whatever...).

Tuesday, October 07, 2008
"It uses it's own extentions to C++ for a signal/slot mechanism to pass message btween gui components. This is an excellent design (IMHO) but can leave you scratching your head about an error if you miss something out."

The idea is good, but its design (with the moc compiler) is awful.  It doesn't even support standard C++ signatures.

A design like Boost.Signal would have been so much better...
Tuesday, October 07, 2008
Just an observation, but _every_ thread on this topic always reduces to either using a crappy open source library or an unaffordable commercial library.

Why is there no other contender on the market?

Tuesday, October 07, 2008
wxWidgets isn't crappy and QT isn't unaffordable.
So the alternatives to MFC are either a good FOSS library or a reasonable dual licenced one!
Martin Send private email
Tuesday, October 07, 2008
If you're going to stick with Windows and C++, WTL is a reasonable alternative to MFC. Just to round things out, you can use .NET from C++ ... if you're completely insane.
(User deleted) Send private email
Wednesday, October 08, 2008
You can only realistically use .NET from C++/CLI which is "C++ with a few minor additions" in the same way that C++ is "C with a few minor additions" and not a new language that shares a lot in common with its parent.

Though .NET is a reasonable choice, if you want to go that way.

And anything associated with Borland is a great idea, at least if your idea of a great time includes nailing your knees to your chair and then going out dancing.

Wednesday, October 08, 2008
In my opinion, the best environment for developing C++ GUI applications is CodeGear, by Borland. The IDE is incredibly efficient, you have properties, events, layout management, toolbars, menus and everything you wish, EDITED VISUALLY. The VCL Toolkit is top-notch, extremely quick, and it uses the native components. The only downside is that it is not free.

Someone asked if there is a middle ground between crappy freeware toolkits and unaffordable commercial ones. The truth is, there is not. wxWidgets is not really crappy, but it's not good either. It has lots of shortcomings.
Achilleas Margaritis Send private email
Wednesday, October 15, 2008
If you don't require a native look and feel, check out JUCE ( ).

It's a very clean, modern, solid object oriented library.  Not just GUI, it has container classes and threads, etc.

Free for GPL programs, $650 otherwise.
Friday, October 31, 2008

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz