The free world is the new continent in cyberspace that we have built so we can live here in freedom. It's impossible to live in freedom in the old world of cyberspace, where every program has its feudal lord that bullies and mistreats the users. So, to live in freedom we have to build a new continent. Because this is a virtual continent, it has room for everyone, and there are no immigration restrictions. - Richard Stallman -

Qt is a cross-platform application framework that is widely used for developing application software with graphical user interface (GUI) (in which cases Qt is referred to as a widget toolkit), and also used for developing non-GUI programs such as command-line tools and consoles for servers.

It is produced by Nokia's Qt Development Frameworks division, which came into being after Nokia's acquisition of the Norwegian company Trolltech, the original producer of Qt.

Qt uses standard C++ but makes extensive use of a special code generator (called the Meta Object Compiler, or moc) together with several macros to enrich the language. Qt can also be used in several other programming languages via language bindings. It runs on all major platforms and has extensive internationalization support. Non-GUI features include SQL database access, XML parsing, thread management, network support, and a unified cross-platform API for file handling.

Distributed under the terms of the GNU Lesser General Public License (among others), Qt is free and open source software. All editions support a wide range of compilers, including the GCC C++ compiler and the Visual Studio suite.

Introducing Qt Simulator.

Qt Simulator allows you to quickly test and debug applications that target mobile devices, without the overhead of emulating the device at hardware level. It provides special versions of the Qt and Qt Mobility libraries that forward the display and settings to it.

You can link applications that use the Qt and Qt Mobility APIs to these libraries to run them inside Qt Simulator. This allows you to see how applications look and function on different devices in different situations. For example, you can view the application layout on Symbian and Maemo devices, in both landscape and portrait orientation. Or you can check how your application behaves when device battery power decreases to low or critical level.

Qt Simulator does not support any device specific APIs by design. Therefore, applications that run well on Qt Simulator also run on any device that hosts the Qt and Qt Mobility libraries.

Note: Qt Simulator does not have support for catching memory leaks in applications. Memory leaks occur when memory that has been allocated is not freed. To catch memory leaks, use the dynamic analysis tools available for the platform. For example, you can use Valgrind on Maemo and Symbian Emulator and Carbide tools on Symbian.

Qt Examples.

Qt includes a set of examples that cover nearly every aspect of Qt development. They aren't meant to be impressive when you run them, but in each case the source code has been carefully written to illustrate one or more best Qt programming practices.

The examples are listed below by functional area. Each example listed in a particular functional area is meant to illustrate how best to use Qt to do some particular task in that functional area, but the examples will often use features from other functional areas as well for completeness.

If you are new to Qt, you should probably start by going through the Tutorials, and then begin with the Application example.

In addition to these examples and the tutorials, Qt includes a selection of demos that deliberately show off Qt's features. You might want to look at these as well.

Qt is a cross-platform application and UI framework for writing web-enabled applications for desktop, mobile, and embedded operating systems. This page contains links to articles and overviews explaining key components and techniuqes used in Qt development.