If you are comparing wxWidgets with Qt, wxWidgets literally stands no where. Qt is a complete framework where you can write code and generate GUI for Linux, Windows, MAC, Android, IOS and even blackberry, and other embedded systems. It has classes for almost anything you wish to do, from controlling your webcam to bluetooth devices etc.
Unless you are doing something very specific, you won't need any 3rd party library.
On the other hand, wxWidgets, essentially offers a way of creating GUI, with many other classes too but they are quite few in comparison to Qt.
Native-looking GUI vs Native GUI
Just like old and/or deprecated Java
API's use;
wxWidgets
API's use of the operating-system's native GUI-components is actually really bad.
For example:
- In Microsoft Windows operating-system, every single GUI-component and/or child-view, like a button, has it's own separate real sub-window.
Where "real" means the child-view being managed by operating-system to some extent, and the child-view having own separate handle (i.e. hWnd).
- But Qt and "new Java API" both create such real window only for root-view.
Where "root-view" means the Window with 3 buttons at it's top (i.e. the minimize, maximize and close buttons).
- That's possible because in Java and Qt, all child-views are virtual, meaning they are positioned and managed by framework's layout-engine and render-engine, with native-looking Theme, instead of relying on operating-system for Theme.
The efforts Java and Qt put into layout-engine and render-engine ensures that custom child-views look exactly the same across all operating-systems, and never get affected by operating-system's inconsistency.
In other words, wxWidget
users need to manually test GUI for each platform, on each change, unless they use wxQt
!?
Qt use cases
Many advanced softwares use Qt's GUI, and you can see dynamic-linked-libraries of Qt in:
- Adobe Photoshop (in newer versions only)
- Adobe Illustrator (~)
- 3D-Max (~)
- Maya (~)