Ok,
Takeshi Miya, but mine was not a Qt vs. wxWidgets comparison, I only presented a little overview of Qt!
If you want a true comparison, give also a description of the faults of wxWidgets.
First of all,
native widgets: is this really a problem?
1) they are NOT slow (they use native drawing primitives) and are exactly like the native ones
2) Microsoft for some of his programs (most important ones) does NOT use native widgets: MS Office used 13 different widget implementations between the various releases, and they are still present in recent releases, some dialogs use one, some use others); Internet Explorer too does not uses native widgets to draw web pages.
3) under Windows XP and Mac OS X native widgets are used (most of people use theese OS)
4) under KDE (Linux, BSD and Unix) Qt IS the native widget
5) under PDA wich support Qt, it IS the native widget
6) under Windows 9x/2000 it draws (using native, hardware accelerated drawing functions) widgets that are visually identical to native ones
Speaking of wxWidgets:
1) Windows 3.1 is no more supported (means: code has been removed)
2) not all widgets are native under wxWidgets too (see:
http://www.wxwindows.org/manuals/2.6.3/wx_wxrenderernative.html#wxrenderernative)
3) there is no "style" for KDE (while this is not true for Qt under GNOME)
I don't know wxWidgets very well, but I read this (probably this is a reductive list):
- very simple painting system (see here for a very-short description of the powerful Qt painting system, with anti-aliasing, gradients, double-buffering, styles and others:
http://doc.trolltech.com/4.2/paintsystem.html)
- documentation is very far from the Qt one
- Qt is all pure C++ programming (if you like full OOP), while in wxWidgets you have a lot of macros and this makes programming less natural to a C++ developer
- Qt supports different programming style (loops and iterators): C++, STL, Java-like
- Qt (human) support from Trolltech is excellent (this is important for large projects)
- with Qt/Embedded you can use a Qt program without anything else than QT/Embedded itself! It includes the OS (Linux based) and a graphic system: nothing more (no X server) is required, so CPU and RAM are free for your application. Now (Qt4) it has become Qtopia (
http://www.trolltech.com/products/qtopia/qtopia_platform)
- at a first sight, wxWidgets has much less classes, both GUI and not-GUI related than Qt (means less developer time with Qt: less code and use of well-tested classes)
- also Qt has bindings (althought less than wxWidgets), most used ones are Python (PyQt), C# (Qt#) and Ruby (QtRuby), others are Tcl (Froglogic Tq), Java, Perl, and Smoke; in the past there was also C but it is no more mantained
- there are also transition tools for MFC, Motif, Tcl/Tk and others
- Qt supports also his own scripting language with Qt Script for Applications (QSA:
http://www.trolltech.com/products/qt/addon/qsa)
Like anything else, Qt is not perfect and has its drawbacks, anyway remains among the best C++ toolkits available today (and is continously evolving).
The main drawback is that it requires more RAM and CPU power than native applications, but it is well payed by the easy of developing, the features it offers and the easy of portability.
For a list of supported platforms and compilers:
http://www.trolltech.com/developer/notes/supported_platformsObviously I'm not an expert of both Qt and wxWidgets: if there are mistakes, please let me now!
Best regards,
Alessandro