All Topics  
Qt (toolkit)

 

   Email Print
   Bookmark   Link






 

Qt (toolkit)



 
 
Qt (pronounced "cute" by its creators) is a cross-platform
Cross-platform

In computing, cross-platform is a term used to refer to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms....
 application development framework, widely used for the development of GUI
Graphical user interface

A graphical user interface is a type of user interface which allows people to human-computer interaction such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment....
 programs (in which case it is known as a widget toolkit
Widget toolkit

A widget toolkit, widget library, or GUI toolkit is a set of GUI widget for use in designing applications with graphical user interfaces ....
), and also used for developing non-GUI programs such as console tools and servers. Qt is most notably used in KDE
KDE

KDE is a free software project based around its flagship product, a desktop environment for Unix-like systems. The goal of the project is to provide basic desktop functions and applications for daily needs as well as tools and documentation for developers to write stand-alone applications for the system....
, Opera
Opera (web browser)

Opera is a web browser and Internet suite developed by the Opera Software company. Opera handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, IRC online chatting, downloading files via BitTorrent , and reading web feeds....
, Google Earth
Google Earth

Google Earth is a virtual globe, map and geographic information program that was originally called Earth Viewer, and was created by Keyhole, Inc, a company acquired by Google in 2004....
, Skype
Skype

Skype is software that allows users to make voice over Internet Protocol. Calls to other users of the service and to free-of-charge numbers are free, while calls to other landlines and mobile phones can be made for a fee....
, Qt Extended, Adobe Photoshop Album
Adobe Photoshop Album

Adobe Photoshop Album is a software application by Adobe Systems designed to import, organize and Editing digital photos, and allows quick and easy searching and sharing of entire photo collections....
, VirtualBox
VirtualBox

VirtualBox is an x86 virtualization software package, originally created by Germany software company innotek, now developed by Sun Microsystems as part of its Sun xVM virtualization platform....
 and OPIE. It is produced by the Norwegian
Norway

Norway , officially the Kingdom of Norway, is a constitutional monarchy in Northern Europe that occupies the western portion of the Scandinavian Peninsula....
 company Qt Software, formerly known as Trolltech
Trolltech

Qt Software is a computer software company from Oslo, Norway....
, a wholly owned subsidiary of Nokia
Nokia

Nokia Corporation is a Finland Multinational corporation communications corporation, headquartered in Keilaniemi, Espoo, a city neighbouring Finland's capital Helsinki....
 since June 17, 2008.

Qt uses C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
 with several non-standard extensions implemented by an additional pre-processor that generates standard C++ code before compilation.






Discussion
Ask a question about 'Qt (toolkit)'
Start a new discussion about 'Qt (toolkit)'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Qt (pronounced "cute" by its creators) is a cross-platform
Cross-platform

In computing, cross-platform is a term used to refer to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms....
 application development framework, widely used for the development of GUI
Graphical user interface

A graphical user interface is a type of user interface which allows people to human-computer interaction such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment....
 programs (in which case it is known as a widget toolkit
Widget toolkit

A widget toolkit, widget library, or GUI toolkit is a set of GUI widget for use in designing applications with graphical user interfaces ....
), and also used for developing non-GUI programs such as console tools and servers. Qt is most notably used in KDE
KDE

KDE is a free software project based around its flagship product, a desktop environment for Unix-like systems. The goal of the project is to provide basic desktop functions and applications for daily needs as well as tools and documentation for developers to write stand-alone applications for the system....
, Opera
Opera (web browser)

Opera is a web browser and Internet suite developed by the Opera Software company. Opera handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, IRC online chatting, downloading files via BitTorrent , and reading web feeds....
, Google Earth
Google Earth

Google Earth is a virtual globe, map and geographic information program that was originally called Earth Viewer, and was created by Keyhole, Inc, a company acquired by Google in 2004....
, Skype
Skype

Skype is software that allows users to make voice over Internet Protocol. Calls to other users of the service and to free-of-charge numbers are free, while calls to other landlines and mobile phones can be made for a fee....
, Qt Extended, Adobe Photoshop Album
Adobe Photoshop Album

Adobe Photoshop Album is a software application by Adobe Systems designed to import, organize and Editing digital photos, and allows quick and easy searching and sharing of entire photo collections....
, VirtualBox
VirtualBox

VirtualBox is an x86 virtualization software package, originally created by Germany software company innotek, now developed by Sun Microsystems as part of its Sun xVM virtualization platform....
 and OPIE. It is produced by the Norwegian
Norway

Norway , officially the Kingdom of Norway, is a constitutional monarchy in Northern Europe that occupies the western portion of the Scandinavian Peninsula....
 company Qt Software, formerly known as Trolltech
Trolltech

Qt Software is a computer software company from Oslo, Norway....
, a wholly owned subsidiary of Nokia
Nokia

Nokia Corporation is a Finland Multinational corporation communications corporation, headquartered in Keilaniemi, Espoo, a city neighbouring Finland's capital Helsinki....
 since June 17, 2008.

Qt uses C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
 with several non-standard extensions implemented by an additional pre-processor that generates standard C++ code before compilation. Qt can also be used in several other programming languages; bindings
Language binding

In computing, a Binding from a language to a library or operating system service is an Application programming interface providing that service in the language....
 exist for Ada
Ada (programming language)

Ada is a structured programming, statically typed, Imperative programming, and Object-oriented programming high-level language computer programming programming language, extended from Pascal and other languages....
 (QtAda), C# (Qyoto/Kimono), Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
 (Qt Jambi), Pascal
Pascal (programming language)

Pascal is an influential imperative programming and Procedural programming programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structure....
, Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
 (; The Qt3 bindings are unmaintained). PHP
PHP

PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
 (PHP-Qt), Ruby
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
 (QtRuby), and Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
 (PyQt
PyQt

PyQt is the Python Binding of the cross-platform GUI toolkit Qt .PyQt is developed by the United Kingdom firm . It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License and commercial license, but not LGPL....
). It runs on all major platforms, and has extensive internationalization support. Non-GUI features include SQL
SQL

SQL is a database computer language designed for the retrieval and management of data in relational database management systems , database schema creation and modification, and database object access control management....
 database access, XML parsing, thread
Thread (computer science)

In computer science, a thread of execution is a Fork of a computer program into two or more Concurrency running task s. The implementation of threads and process es differs from one operating system to another, but in most cases, a thread is contained inside a process....
 management, network support and a unified cross-platform API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
 for file handling.

Varieties

Qt is released by Trolltech on the following platforms:
  • Qt/X11 – Qt for X Window System
    X Window System

    The X Window System is a computing software system and network protocol that provides a graphical user interface for networked computers. It implements the X Window System protocols and architecture and provides windowing system on raster graphics Visual display units and manages Keyboard and pointing device control functions....
     (Unix
    Unix

    Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
     / Linux
    Linux

    Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
    )
  • Qt/Mac – Qt for Apple Mac OS X
    Mac OS X

    Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
  • Qt/Windows – Qt for Microsoft Windows
    Microsoft Windows

    Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
  • Qt/Embedded – Qt for embedded platforms (PDA
    Personal digital assistant

    A personal digital assistant is a handheld computer, also known as a palmtop computer. Newer PDAs also have both color screens and audio capabilities, enabling them to be used as mobile phones, , web browsers, or portable media players....
    , Smartphone
    Smartphone

    A smartphone is a mobile phone offering advanced capabilities beyond a typical mobile phone, often with personal computer-like functionality. There is no industry standard definition of a smartphone....
    , etc.)
  • Qt/WinCE – Qt for Windows CE
    Windows CE

    Windows CE is Microsoft's operating system for minimalistic computers and embedded systems. Windows CE is a distinctly different operating system and Kernel , rather than a trimmed-down version of desktop Windows....
  • Qt Jambi – Qt for Java
    Java (programming language)

    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
  • Qt Extended – Application platform for Embedded Linux
    Embedded Linux

    Embedded Linux is the use of a Linux kernel operating system in embedded computer systems such as mobile phones, personal digital assistants, media centers, set-top boxes, and other consumer electronics devices, computer network equipment, machine control, industrial automation, navigation equipment and medical instruments....
    -based mobile computing devices


Qt software on October 20, 2008 announced a version of Qt on S60 platform
S60 platform

The S60 Platform is a platform for mobile phones that runs on Symbian OS. S60 is currently amongst the leading smartphone platforms in the world....
.

There are four editions of Qt available on each of these platforms, namely:
  • Qt Console – edition for non-GUI development
  • Qt Desktop Light – entry level GUI edition, stripped of network and database support
  • Qt Desktop – complete edition
  • Qt Open Source Edition – "complete" edition, with some exceptions, for free software
    Free software

    Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
    /open source
    Open source

    Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
     developers


License

Until version 1.45, source code for Qt was released under the FreeQt license — which was viewed as not compliant with the open source principle by the Open Source Initiative
Open Source Initiative

The Open Source Initiative is an organization dedicated to promoting open-source software.The organization was founded in February 1998, by Bruce Perens and Eric S....
 and the free software definition by Free Software Foundation
Free Software Foundation

The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to distribute and modify computer software without restriction....
, because while the source was available it did not allow the redistribution of modified versions.

With the release of version 2.0 of the toolkit, the license was changed to the Q Public License
Q Public License

The Q Public License is a non-copyleft free software license created by Trolltech for its free software edition of the Qt . It captures the general meaning of the GNU General Public Licence , but is incompatible with it, meaning that you cannot legally distribute products derived from both GPL'ed and QPL'ed code....
 (QPL), a free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 license but one regarded by the Free Software Foundation
Free Software Foundation

The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to distribute and modify computer software without restriction....
 as incompatible with the GPL. Compromises were sought between KDE and Trolltech whereby Qt would not be able to fall under a more restrictive license than the QPL, even if Trolltech were bought out or went bankrupt. This led to the creation of the , which guarantees that Qt would fall under a BSD-style license should no free software/open source version of Qt be released during 12 months.

Later Qt became available under a dual license
Dual license

Dual-licensing is the practice of distributing software under two different sets of terms and conditions. This may mean two different licenses, or two different sets of licenses....
, the GPL
GNU General Public License

The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
 v2 or v3 with special exception and a proprietary commercial license on all supported platforms. The commercial license allows the final application to be licensed under various free software/open source licenses such as the LGPL
GNU Lesser General Public License

The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License and permissive licenses such as the BSD licenses and the MIT License....
 or the Artistic License
Artistic License

The Artistic License refers most commonly to the original Artistic License , a software license used for certain free software packages, most notably the standard Perl implementation and most CPAN modules, which are dual-licensed under the Artistic License and the GNU General Public License ....
, or a proprietary software license.

As announced on January 14, 2009, Qt version 4.5 adds another option, the LGPL, which should make Qt more suitable for non-GPL open source projects and for commercial users.

All editions support a wide range of compilers, including the GCC
GNU Compiler Collection

The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain....
 C++ compiler and the Visual Studio
Microsoft Visual Studio

Microsoft Visual Studio is an integrated development environment from Microsoft. It can be used to develop Console application and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all platforms supported by Microsoft W...
 suite.

Current

Trolltech released Qt 4 on June 28, 2005 and introduced five new technologies in the framework:

  • Tulip A set of template container classes.
  • Interview A model/view architecture for item views.
  • Arthur A 2D painting framework.
  • Scribe A Unicode text renderer with a public API for performing low-level text layout.
  • MainWindow A modern action-based main window, toolbar, menu, and docking architecture.


Qt 4.1, released on December 19, 2005, introduced integrated SVG
Scalable Vector Graphics

Scalable Vector Graphics is a family of specifications of XML-based file format for describing two-dimensional vector graphics, both static and dynamic ....
 Tiny support, a PDF
Portable Document Format

Portable Document Format is a file format created by Adobe Systems in 1993 for document exchange. PDF is used for representing two-dimensional documents in a manner independent of the application software, hardware, and operating system....
 backend to Qt's printing system, and .

Qt 4.2, released on October 4, 2006, introduced Windows Vista
Windows Vista

Windows Vista is one member in a family of operating systems developed by Microsoft for use on personal computers, including home and business Desktop computer, laptops, Tablet PCs, and media center PCs....
 support, introduced native CSS support for widget styling, as well as the QGraphicsView framework for efficient rendering of thousands of 2D objects onscreen, to replace Qt 3.x's QCanvas class.

Qt 4.3, released on May 30, 2007, improved Windows Vista
Windows Vista

Windows Vista is one member in a family of operating systems developed by Microsoft for use on personal computers, including home and business Desktop computer, laptops, Tablet PCs, and media center PCs....
 support, improved OpenGL
OpenGL

OpenGL is a standard specification defining a cross-language cross-platform Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
 engine, SVG file generation, added QtScript (ECMAScript
ECMAScript

ECMAScript is a scripting language, standardized by Ecma International in the ECMA-262 Specification . The language is widely used on the World Wide Web, and is often confused with JavaScript or JScript, the two major Programming language dialect from which ECMAScript was standardized....
 scripting engine based on QSA
Qt Script for Applications

QtScript is a scripting engine that has been part of the Qt toolkit since version 4.3.0.The scripting language is based on the ECMAScript standard....
).

Qt 4.4, released on May 6, 2008. Features included are improved multimedia support using Phonon
Phonon (KDE)

Phonon is the multimedia API for KDE 4. Phonon was created to allow KDE 4 to be independent of any single multimedia framework such as GStreamer or xine and to provide a stable API for KDE 4's lifetime....
, enhanced XML support, a concurrency framework to ease the development of multi-threaded
Thread (computer science)

In computer science, a thread of execution is a Fork of a computer program into two or more Concurrency running task s. The implementation of threads and process es differs from one operating system to another, but in most cases, a thread is contained inside a process....
 applications, an IPC
Inter-process communication

Inter-Process Communication is a set of techniques for the exchange of data among multiple thread in one or more Process . Processes may be running on one or more computers connected by a computer network....
 framework with a focus on shared memory, and WebKit
WebKit

WebKit is an application framework that provides a foundation upon which to build a web browser. WebKit was originally derived by Apple Inc. from the Konqueror browser?s KHTML software library for use as the engine of Mac OS X?s Safari web browser, and has now been further developed by individuals from the KDE project, Apple, Nokia, Google,...
 integration.

Qt 4.5, released on March 3, 2009. Major included features are QtCreator, improved graphical engine, improved integration with WebKit
WebKit

WebKit is an application framework that provides a foundation upon which to build a web browser. WebKit was originally derived by Apple Inc. from the Konqueror browser?s KHTML software library for use as the engine of Mac OS X?s Safari web browser, and has now been further developed by individuals from the KDE project, Apple, Nokia, Google,...
, OpenDocument
OpenDocument

The OpenDocument format is a file format for electronic office documents such as spreadsheets, charts, presentation programs and word processor documents....
 Format read support and new licensing options. Mac OS X Cocoa Framwork support.

History


Haavard Nord and Eirik Chambe-Eng (the original developers of Qt and the CEO and President, respectively, of Trolltech
Trolltech

Qt Software is a computer software company from Oslo, Norway....
) began development of "Qt" in 1991, three years before the company was incorporated as Quasar Technologies, then changed the name to Troll Tech, and then to Trolltech.

The toolkit was called Qt because the letter Q
Q

Q is the seventeenth letter of the modern Latin alphabet. Its name in English language is spelled cue ....
 looked appealing in Haavard's Emacs
Emacs

Emacs is a class of feature-rich text editors, usually characterized by their extensibility. Emacs has, perhaps, more editing commands than any other editor or word processor, numbering over 1,000....
 font, and "t" was inspired by Xt
Intrinsics

Intrinsics is a library used in the X Window System. More precisely, it is a library that uses the low-level Xlib library and provides a friendly API to develop X11 software with graphical widgets....
, the X toolkit.

Controversy erupted around 1998 when it became clear that KDE was going to become one of the leading desktop environment
Desktop environment

In graphical computing, a desktop environment commonly refers to a style of graphical user interface that is based on the desktop metaphor which can be seen on most modern personal computers today....
s for Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
. As KDE was based on Qt, many people in the free software movement
Free software movement

The free software movement is a social movement which aims to promote user's rights to access and modify software. The alternative terms for free software "libre software", "open source", and "FOSS" are associated with the free software movement....
 worried that an essential piece of one of their major operating systems would be proprietary.

This gave rise to two efforts: the Harmony toolkit
Harmony toolkit

The Harmony toolkit is a never-completed free software widget toolkit that aimed to be Application Programming Interface compatible with the then-Proprietary software Qt widget toolkit....
, which sought to duplicate the Qt Toolkit under a free software license, and the GNOME
Gnome

A gnome is a mythical creature characterized by its extremely small size and wiktionary:subterranean lifestyle. The word gnome is derived from the New Latin gnomus....
 desktop, which intended to supplant KDE entirely. The GNOME Desktop uses the GTK+
GTK+

GTK+, or The GIMP Toolkit, is a cross-platform widget toolkit for creating graphical user interfaces. It is one of the most popular toolkits for the X Window System, along with Qt ....
 toolkit, which was originally written for the GIMP
GIMP

The GIMP is a free software, raster graphics editor used to process digital graphics and photographs. Typical uses include creating graphics and logos, resizing and cropping photos, altering colors, combining multiple images, removing unwanted image components, and converting between different image formats....
, and primarily uses the C programming language.

The first two versions of Qt had only two flavours: Qt/X11 for Unix and Qt/Windows for the Windows platform. The Windows platform was only available under the proprietary license which meant free/open source applications written in Qt for X11 could not be ported to Windows without purchasing the QPL edition. In the end of 2001, Trolltech released Qt 3.0 which added support for the Mac OS X platform. The Mac OS X support was available only in the proprietary license, until June 2003, where Trolltech released Qt 3.2 with Mac OS X support available under the GPL.

In 2002 members of the KDE on Cygwin
KDE on Cygwin

KDE on Cygwin is the port of Qt and KDE desktop environment to Microsoft Windows using Cygwin, the POSIX emulation layer for Windows, and the Cygwin XFree86 server....
 project began porting the GPL licensed Qt/X11 code base to Windows. This was in response to Trolltech's refusal to license Qt/Windows under the GPL on the grounds that Windows was not a free software/open source platform. The project achieved reasonable success although it never reached production quality.

This was resolved when Trolltech released Qt/Windows 4 under the GPL in June 2005. Qt 4 now supports the same set of platforms in the free software/open source editions as in the proprietary edition, so it is now possible to create GPL-licensed free/open source applications using Qt on all supported platforms.

In June 2008 Nokia acquired Trolltech ASA to enable the acceleration of their cross-platform software strategy for mobile devices and desktop applications, and to develop its Internet services business. On September 29, 2008 Nokia renamed Trolltech to Qt Software.

Training and Consulting Partners

Region Company
North America
North America

North America is the northern continent of the Americas, situated in the Earth's northern hemisphere and almost totally in the western hemisphere....
, ,
 , ,
SRA International
SRA International

SRA International, Inc. is a provider of technology and strategic consulting services and solutions to clients in national security, civil government, health care and public health....
GTE
GTE

GTE Corporation was the largest of the "independent" United States of America telephone companies during the days of the Bell System. It acquired the third largest independent, Contel in 1991....


Design

The innovation of Qt when it was first released relied on a few key concepts.

Use of native UI-rendering APIs


Qt used to emulate the native look of its intended platforms, which occasionally led to slight discrepancies where that emulation was imperfect. Recent versions of Qt use the native APIs of the different platforms to draw the Qt controls, and so do not suffer from such issues. (See also wxWidgets
WxWidgets

wxWidgets is a widget toolkit for creating graphical user interfaces for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes....
, which relies on native APIs for most widget functionality.)

Meta object compiler


Known as the moc, this is a tool that is run on the sources of a Qt program prior to compiling it. The tool will generate C++ code with "Meta Information" about the classes used in the program. This meta information is used by Qt to provide programming features not available natively in C++: The signal/slot system
Signals and slots

Signals and slots is a language construct introduced in Qt , which makes it easy to implement the Observer pattern while avoiding boilerplate_#Boilerplate_code ....
 (which has also been implemented in native C++
Signals and slots

Signals and slots is a language construct introduced in Qt , which makes it easy to implement the Observer pattern while avoiding boilerplate_#Boilerplate_code ....
 by other parties), introspection
Type introspection

In computing, type introspection is a capability of some object-oriented programming programming languages to determine the type of an Object at runtime....
 and asynchronous function calls.

Controversy
The use of an additional tool has been criticized for making Qt programming different from pure C++ programming. In particular, the choice of an implementation based on macros has been criticized for its absence of type safety and pollution of the namespace. This is viewed by Trolltech as a necessary trade-off to provide introspection and the dynamically generated slot and signal mechanism.

QtScript ECMAScript interpreter


Qt Script for Applications
Qt Script for Applications

QtScript is a scripting engine that has been part of the Qt toolkit since version 4.3.0.The scripting language is based on the ECMAScript standard....
 is a cross-platform toolkit that allows developers to make their Qt/C++ applications scriptable using an interpreted scripting language: Qt Script (based on ECMAScript/JavaScript
JavaScript

JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
).

From Qt 4.3.0 onward, the scripting API , which is based on QSA is integrated as a core part of Qt and is no longer a separate library.

Applications built using Qt


Popular examples of applications which use Qt include:

  • Adobe Photoshop Album
    Adobe Photoshop Album

    Adobe Photoshop Album is a software application by Adobe Systems designed to import, organize and Editing digital photos, and allows quick and easy searching and sharing of entire photo collections....
    , an image organizing application
  • Avidemux
    Avidemux

    Avidemux is a free software Open source program designed for multi-purpose non-linear editing system and processing. It is written in C /C++, using either the GTK+ or Qt graphics toolkit or a command line interface, and is a platform independent, universal video processing program....
    , a freedomware
    Free software

    Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
     program designed for multi-purpose video editing
    Non-linear editing system

    A non-linear editing system is a video editing or audio editing system which can perform random access on the source material....
     and processing, has a Qt frontend since version 2.4
  • Doxygen
    Doxygen

    Doxygen is a documentation generator for C++, C , Java , Objective C programming language, Python , Interface description language , Fortran, VHDL, PHP, C Sharp programming language, and to some extent D programming language....
    , an API document generator
  • Freemat
    FreeMat

    FreeMat is a free software open source numerical analysis environment and programming language, similar to MATLAB and GNU Octave. In addition to supporting many MATLAB functions and some IDL functionality, it features a codeless interface to external C programming language, C++, and Fortran code, further Parallel Distributed Processing , and...
    , a free numerical computing environment and programming language
  • Gadu-Gadu
    Gadu-Gadu

    Gadu-Gadu is a Polish instant messaging client using its own protocol. Gadu-Gadu is the most popular IM service in Poland, with over 7.8 million registered accounts and approximately 6.5 million users online daily....
    , a popular Polish instant messaging client
  • Google Earth
    Google Earth

    Google Earth is a virtual globe, map and geographic information program that was originally called Earth Viewer, and was created by Keyhole, Inc, a company acquired by Google in 2004....
    , a 3D map program
  • KDE
    KDE

    KDE is a free software project based around its flagship product, a desktop environment for Unix-like systems. The goal of the project is to provide basic desktop functions and applications for daily needs as well as tools and documentation for developers to write stand-alone applications for the system....
    , a popular desktop environment for Unix-like
    Unix-like

    A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
     operating systems
    • KDELibs
      KDELibs

      KDELibs is a collection of library built on top of Qt that provides frameworks and functionality for Software developer of KDE-compatible software....
      , a library base for many KDE applications including Amarok, K3b
      K3b

      K3b is a Compact Disc and DVD optical disc authoring application for the KDE desktop environment for Unix-like computer operating systems. It provides a graphical user interface to perform most CD/DVD burning tasks like creating an Audio CD from a set of audio files or copying a CD/DVD, as well as more advanced tasks such as burning eMoviX C...
      , KDevelop
      KDevelop

      KDevelop is a free software integrated development environment for the KDE desktop environment for Unix-like computer operating systems. KDevelop does not include a compiler; instead, it uses an external compiler such as GNU Compiler Collection to produce executable code....
       and KOffice
      KOffice

      KOffice is an office suite for the K Desktop Environment . All its components are released under free software license/open source license licenses and use OpenDocument as their native file format when possible....
  • Last.fm Player, the desktop client for the popular internet radio and music community website.
  • Launchy
    Launchy

    Launchy is a free open source application launcher for Linux and Microsoft Windows. It indexes shortcuts in the start menu, and files in specific folders to allow quicker access to programs without opening the start menu itself, or browsing to the relevant folder....
    , the open source
    Open source

    Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
     keystroke launcher for Windows
  • LMMS
    LMMS

    Linux MultiMedia Studio, or LMMS, is a free , Linux-based alternative to popular programs such as FL Studio, Cubase and Logic Pro.Music can be produced by creating/synthesizing sounds, arranging samples, and playing live with a MIDI keyboard....
    , a free open source
    Open source

    Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
     sequencer and software synthesis package
  • LyX
    LyX

    is a document processor following the self-coined "what you see is what you mean" paradigm , as opposed to the WYSIWYG ideas used by word processors....
    , a GUI frontend to LaTeX
    LaTeX

    LaTeX is a document markup language and Word processor for the TeX typesetting program. Within the typesetting system, its name is styled as ....
  • Mathematica
    Mathematica

    Mathematica is a computational software program used widely in scientific, engineering, and mathematical fields and other areas of technical computing....
    , Linux version uses Qt for the GUI front-end
  • Mixxx
    Mixxx

    Mixxx is open source digital DJ?ing software that allows an individual to mix music together using a personal computer, as a DJ would with a pair of physical Phonograph....
    , cross-platform open source DJ mixing software
  • Motorola A760
    Motorola A760

    The Motorola A760 is a Linux-based cameraphone equipped mobile telephone developed at Motorola's laboratory in China and released in the Chinese market on February 16, 2003....
    , uses Qt/Embedded in its UI
  • MythTV
    MythTV

    MythTV is a free software Linux application which turns a computer with the necessary hardware into a Computer_network Streaming_media digital video recorder, a digital multimedia home entertainment system, or HTPC....
    , an open source digital video recorder
  • Opera
    Opera (web browser)

    Opera is a web browser and Internet suite developed by the Opera Software company. Opera handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, IRC online chatting, downloading files via BitTorrent , and reading web feeds....
    , a web browser (only Linux and *BSD builds)
  • Psi
    Psi (instant messaging client)

    Psi is a GNU General Public License instant messaging client for the Jabber protocol which uses the Qt toolkit. It runs on Linux, Microsoft Windows, and Mac OS X....
    , an instant messaging client for XMPP
  • Quantum GIS
    Quantum GIS

    Quantum GIS is a free software desktop Geographic Information Systems application that provides data viewing, editing, and analysis capabilities....
    , a free desktop GIS
  • Scribus
    Scribus

    Scribus is a desktop publishing application; released under the GNU General Public License, it is free software. Native versions are available for Linux, Unix, Mac OS X, OS/2, and Microsoft Windows....
    , a desktop publishing
    Desktop publishing

    Desktop publishing combines a personal computer and WYSIWYG page layout software to create publication documents on a computer for either Publishing or small scale local Multifunction printer output and distribution....
     application
  • Skype
    Skype

    Skype is software that allows users to make voice over Internet Protocol. Calls to other users of the service and to free-of-charge numbers are free, while calls to other landlines and mobile phones can be made for a fee....
    , a P2P
    Peer-to-peer

    A peer-to-peer computer network uses diverse connectivity between participants in a network and the cumulative bandwidth of network participants rather than conventional centralized resources where a relatively low number of Server s provide the core value to a service or application....
     VOIP
    Voice over IP

    Voice over Internet Protocol is a general term for a family of transmission technologies for delivery of voice communications over Internet Protocol networks such as the Internet or other packet-switched Computer network....
     application
  • TeamSpeak
    TeamSpeak

    TeamSpeak is proprietary software Voice over IP software that allows users to speak on a chat channel with other users, much like a telephone conference call....
    , cross-platform voice communication software
  • TOra
    TOra

    TOra is a free software program for Oracle Database developers and administrators. It features a PL/SQL debugger, an SQL worksheet with syntax highlighting, a database browser and a comprehensive set of database administration tools....
    , a database administration tool
  • VirtualBox
    VirtualBox

    VirtualBox is an x86 virtualization software package, originally created by Germany software company innotek, now developed by Sun Microsystems as part of its Sun xVM virtualization platform....
    , a PC virtualization application
  • VisIt
    Visit

    A visit is where a person, or people, goes to either see someone or a place. It can refer to many things:*A visitation*A State visit*A Conjugal visit...
    , an interactive parallel visualization tool for viewing scientific data
  • VisTrails
    VisTrails

    VisTrails is a scientific Workflow developed at the University of Utah that provides support for data exploration and visualization. It is written in Python and employs Qt via PyQt bindings....
    , a scientific workflow management and visualization system
  • VLC Media Player
    VLC media player

    VLC media player is an open source, free software media player written by the VideoLAN project.VLC is a portable multimedia player, encoder, and streamer supporting many audio and video codecs and file formats as well as DVDs, Video CD, and various streaming media Communications protocol....
    , an open source media player, Qt frontend since version 0.9
  • Xconfig
    Xconfig

    xconfig is short for the 'xconfig' target for the Linux kernel Makefile. It is a graphical Linux compilation utility, which uses Qt ....
    , Linux Kernel configuration tool


See also


  • GTK+
    GTK+

    GTK+, or The GIMP Toolkit, is a cross-platform widget toolkit for creating graphical user interfaces. It is one of the most popular toolkits for the X Window System, along with Qt ....
  • Widget toolkit
    Widget toolkit

    A widget toolkit, widget library, or GUI toolkit is a set of GUI widget for use in designing applications with graphical user interfaces ....
  • wxWidgets
    WxWidgets

    wxWidgets is a widget toolkit for creating graphical user interfaces for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes....
  • List of widget toolkits
    List of widget toolkits

    Low-level widget toolkits...


External links

  • (regarding Qt licensing from before version 2.2)
  • (book in html)
  • . Excerpts from a Prentice Hall book teaching C++ programming from the ground up, using Qt 4.1
  • - new open-source cross-platform integrated development environment for the Qt application framework