Qt is a cross-platform application development framework, widely used for the development of GUI and non-GUI programs. Originally Qt was developed by a Norwegian company, Trolltech. It is presently being acquired by Nokia.
Examples of GUI applications using Qt are the VLC Media Player, Opera, Adobe Photoshop Album, Google Earth, Mathematica, etc. Non GUI applications include console tools and servers.
Qt is primarily based on C++ with several non-standard extensions. That is Qt was built by modifying the traditional C++ so as to achieve easier GUI programming. It uses an additional preprocessor that converts this code into standard C++ code before compilation.
Notably, Qt isn’t restricted to UNIX, it is also extended to various platforms such as Windows (98, NT, ME, 2000), Macintosh (Mac OS X). Further, Qt can be used in several programming languages such as Ada (QtAda), C# (Qyoto), Java (Qt Jambi), Ruby (RubyQt) and several others. Qt is also available for embedded systems such as cell-phones, PDA’s and others under the name of Qtopia.
Coming to the working of Qt, Qt uses the native APIs of the underlying platform so as to draw the Qt controls, achieving platform independence. It also offers SQL database access, XML parsing and threads management.
Further a new concept was introduced to C++ on a whole, which was that of intercommunication, under the name of Signals and Slots. This was possible with a tool known as the Meta Object Compiler. This tool handles the mechanism of signals and slots, run-time type information and dynamic property system. However this concept has been greatly criticized for the absence of type safety.