PDA

View Full Version : Other Programming Libraries



rooney
18th July 2006, 15:48
Hi,

Although this is a Qt forum, has anyone here used any of the other software available? I am really specifically thinking here of wxWindows, but perhaps there are others.

I have used Qt quite a bit but, without knowing about these other products, can anyone tell me the reasons why Qt is superior or why they moved to Qt from another product? I feel that one of Qt's strong points is the usefulness of some of the non-gui classes...

Thanks ;)

jacek
18th July 2006, 15:56
I've tried wxWidgets once and certainly they weren't as cross-platform as Qt at that time --- I had to add some #ifdefs to make my application work on windows (not mentioning that it took me whole day to build wxWidgets, because of some weird errors).

wysota
18th July 2006, 16:00
According to me Qt strong points are the real portability (one source, three binaries, no ifdefs), robustness, great documentation, very good support from both the community and the "helpdesk" and a huge number of support and high-level component classes which make Qt much more than just a toolkit.

I haven't used other frameworks than Qt for any serious goal, but I'll say a few words. wxWidgets have a more flexible licence, worse documentation, less support classes and don't provide real portability. GTK is a lower level library (wxWidgets may use GTK for rendering), so it's something a little bit different and it doesn't work well on non-u*ix platforms. Kylix uses Qt for display but it sucks when it comes to efficiency and ease of use (all pros of using Delphi are wasted here). .NET/Mono is a "dream that didn't come true", you'll kill yourself trying to do anything serious with it. MFC is not portable at all and is a terrible wrapper over WinAPI.

There are also other solutions like FOX, Motif and others (some of them more or less portable) but I consider them either obsolete or much worse than Qt.

A... one more thing. Qt programms integrate well (meaning their look and behaviour) with other applications in your system.

rickbsgu
19th July 2006, 03:01
I've taken a quick look at wxWindows - would like to explore it a little more. Curious about it for maybe quick and dirty cheapie projects.

Assuming wxWindows has grown up a bit, a fundamental difference I see is that Qt is well supported, and incorporates a lot of external functionality like XML, Imaging, networking, etc., etc., etc. that otherwise requires a lot of third party lib researching and building. That gets onerous, especially in a mutli-platform environment. However well wxWindows works, it doesn't provide that bundling.

OTOH, the included libs can be a downside, if you need the absolute latest and greatest of the external functionality. Qt always lags a version or two.

My understanding is wxWindows uses more native windows than Qt - more like a native app. Qt draws a lot of internal widgets itself, leaving only the larger shells as proper windows. The Qt approach is good for performance and uses a lot less resources. OTOH, if you're using a window-keyed testing tool, like Rational, it can be a challenge, since there are fewer windows to key to.


As an aside, I've been working in C#/.NET, lately. .NET is ok, no great shakes one way or the other (and it's ms-only, and a moving target with versions 1.1, 2.0, and now 3.0 around the corner). But I have to say, a VM based language has it's joys. Builds are slam-bam fast, and there are no header/body synchronization issues. Makes for a much faster development cycle. Very interested in seeing how the Java/Mono versions of Qt work out - even the PHP version could be fun to dink with (AAAaaaagh!! Where'd my types go???!!!)

rickb

wysota
19th July 2006, 13:09
My understanding is wxWindows uses more native windows than Qt - more like a native app. Qt draws a lot of internal widgets itself, leaving only the larger shells as proper windows.

AFAIK for example WindowsXP style and Aqua style use native drawing calls to render widgets. Thanks to that they integrate with system skins, so it's easy to see that the OS provided mechanisms are used.