About Qt: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Added some companies that use Qt)
m (→‎IDE: Improved punctuation.)
 
(17 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{LangSwitch}}
{{LangSwitch}}
==What is Qt?==
==What is Qt?==
Qt is a cross-platform application development framework for desktop, embedded and mobile. [[Supported Platforms]] include Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS and others.  
Qt is a cross-platform application development framework for desktop, embedded and mobile. [[Supported Platforms]] include Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS and others.  


Qt is ''not'' a programming language by its on. It is a framework written in C++. A preprocessor, the [http://doc.qt.io/qt-5/moc.html MOC (Meta-Object Compiler)], is used to extend the C++ language with features like [http://doc.qt.io/qt-5/signalsandslots.html signals and slots]. At compile-time the MOC parses the source files written in Qt-extended C++ and generates standard compliant C++ sources from them. Thus the framework itself and applications using it can be compiled by any standard compliant C++ compiler like Clang, GCC, ICC, MinGW and MSVC.  
Qt is ''not'' a programming language on its own. It is a framework written in C++. A preprocessor, the [http://doc.qt.io/qt-5/moc.html MOC (Meta-Object Compiler)], is used to extend the C++ language with features like [http://doc.qt.io/qt-5/signalsandslots.html signals and slots]. Before the compilation step, the MOC parses the source files written in Qt-extended C++ and generates standard compliant C++ sources from them. Thus the framework itself and applications/libraries using it can be compiled by any standard compliant C++ compiler like Clang, GCC, ICC, MinGW and MSVC.  


==The Qt Company and The Qt Project==
==The Qt Company and The Qt Project==
Development of Qt was started in 1990 by the Norwegian programmers Eirik Chambe-Eng and Haavard Nord. Their company Trolltech, that sold Qt licenses and provided support, went through several acquisitions over the years. Today former Trolltech is named [http://qt.oi The Qt Company] and is a wholly owned subsidiary of [http://www.digia.com/ Digia Plc.], Finland. Although The Qt Company is the main driver behind Qt, Qt is now developed by a bigger alliance: The Qt Project. It consists of many companies and individuals around the globe and follows a meriocratic [[The Qt Governance Model|governance model]].  
Development of Qt was started in 1990 by the Norwegian programmers Eirik Chambe-Eng and Haavard Nord. Their company, Trolltech, that sold Qt licenses and provided support, went through several acquisitions over the years. Today former Trolltech is named [http://qt.io The Qt Company] and is a wholly owned subsidiary of [http://www.digia.com/ Digia Plc.], Finland. Although The Qt Company is the main driver behind Qt, Qt is now developed by a bigger alliance: The Qt Project. It consists of many companies and individuals around the globe and follows a meritocratic [[The Qt Governance Model|governance model]].
 
Everyone who wants to, individuals and companies, can join the effort. There are many ways one can contribute to the Qt Project, e.g. by writing code or documentation for the framework, reporting bugs, helping other users on the [https://forum.qt.io/ forum] or maintaining pages on this wiki (see also http://qt.io/contribute/).


==License==
==License==
Line 12: Line 15:


==Build System==
==Build System==
Although any build system can be used with Qt, Qt brings its own [[qmake]]. It is a cross-platform front-end for platform-native build sytems, like [http://www.gnu.org/software/make/ GNU Make], [http://visualstudio.com/ Visual Studio] and [https://developer.apple.com/xcode/ Xcode].
Although any build system can be used with Qt, Qt brings its own [[qmake]]. It is a cross-platform frontend for platform-native build systems, like [http://www.gnu.org/software/make/ GNU Make], [http://visualstudio.com/ Visual Studio] and [https://developer.apple.com/xcode/ Xcode].
 
[http://www.cmake.org CMake] is also a popular alternative to build Qt projects. Qt 4 support has been integrated years ago, and Qt 5 provided support early.
 
A new player entered the game recently: [http://doc.qt.io/qbs/ The Qt Build Suite] a.k.a Qbs. Qbs is a [[QML]] based build system which also provides support for Javascript. This build system not only provides building capability but also packaging like cmake.


==IDE==
==IDE==
Qt comes with its own [http://en.wikipedia.org/wiki/Integrated_development_environment Integrated Development Environment (IDE)], named [[Qt Creator]]. It runs on Linux, OS X and Windows and offers [http://en.wikipedia.org/wiki/Intelligent_code_completion intelligent code completion], [http://en.wikipedia.org/wiki/Syntax_highlighting syntax highlighting], an integrated help system, [http://en.wikipedia.org/wiki/Debugger debugger] and [http://en.wikipedia.org/wiki/Profiling_(computer_programming) profiler] integration and also integration for [http://doc.qt.io/qtcreator/creator-version-control.html all major version control systems] (e.g. git, Bazaar). In addition to Qt Creator developers on Windows can also use Qt's [[Visual_Studio_Add-in]]. Other IDEs (e.g. [https://www.kdevelop.org/ KDevelop] on [http://kde.org KDE]) can also be used. But of course it is in no way mandatory to use any IDE at all.  
Qt comes with its own [http://en.wikipedia.org/wiki/Integrated_development_environment Integrated Development Environment (IDE)], named [[Qt Creator]]. It runs on Linux, OS X and Windows and offers [http://en.wikipedia.org/wiki/Intelligent_code_completion intelligent code completion], [http://en.wikipedia.org/wiki/Syntax_highlighting syntax highlighting], an integrated help system, [http://en.wikipedia.org/wiki/Debugger debugger] and [http://en.wikipedia.org/wiki/Profiling_(computer_programming) profiler] integration and also integration for [http://doc.qt.io/qtcreator/creator-version-control.html all major version control systems] (e.g. git, Bazaar). In addition to Qt Creator, developers on Windows can also use Qt's [[Visual Studio Add-in]]. Other IDEs (e.g. [https://www.kdevelop.org/ KDevelop] on [http://kde.org KDE]) can also be used. But of course it is in no way mandatory to use any IDE at all.


==Internationalization and Localization==
==Internationalization and Localization==
Line 27: Line 34:


==More Modules==
==More Modules==
Not being limited to GUIs, Qt contains modules for cross-platform development with: networks, databases, OpenGL, web
Qt is far more than a GUI toolkit. It provides modules for cross-platform development in the areas of networking, databases, OpenGL, web technologies, sensors, communications protocols (Bluetooth, serial ports, NFC), XML and JSON processing, printing, PDF generation, and much more.
content, special hardware (like sensors, Bluetooth, serial ports, NFC, touch devices, graphics tablets), XML and JSON processing, printing and PDF generation. Even more modules are commercially available from The Qt Company and various others.
 
For a full list of official Qt modules, see the [https://doc.qt.io/qt-5/qtmodules.html All Modules] page in the Qt documentation.
 
Also, see [http://inqlude.org Inqlude.org] for a list of 3rd-party modules based on Qt, for use in Qt projects.


==Language Bindings==
==Language Bindings==
Line 34: Line 44:


==Facts and Figures==
==Facts and Figures==
* One million downloads of Qt 5.3 measured just over a month after launch.<ref>http://www.digia.com/en/Company/News/Digia-Announces-The-Qt-Company-Launches-a-Unified-Website-and-Unleashes-a-20-Indie-Mobile-Monthly-Subscription-Plan/</ref>
* 250+ commits by 60+ contributors per week<ref name="thiago's blog">[http://www.macieira.org/blog/qt-stats/ Thiago Macieira's blog]</ref>
* Leading companies and organizations in over 70 industries use Qt to power millions of devices and applications<ref>http://www.qt.io/qt-in-use/</ref>, including, but not limited to:
** [http://esa.int European Space Agency]<ref>http://web.archive.org/web/20110723145813/qt.nokia.com/qt-in-use/story/customer/esa-european-space-agency</ref>
** [http://autodesk.com/ Autodesk]<ref>http://web.archive.org/web/20110723145736/qt.nokia.com/qt-in-use/autodesk/</ref>
** [http://wolfram.com/ Wolfram Research]<ref>http://web.archive.org/web/20110723145736/qt.nokia.com/qt-in-use/autodesk/</ref>
** [http://lucasfilm.com/ Lucasfilm]<ref>http://www.businesswire.com/news/home/20071015006427/en/Lucasfilm-Ltd.-Trolltechs-Qt-Create-User-Interface#.VXCnRq3tmko</ref>
** [http://disneyanimation.com/ Walt Disney Animation Studios]<ref>http://web.archive.org/web/20110714191507/qt.nokia.com/qt-in-use/story/customer/walt-disney-feature-animation</ref>
** [http://volvo.com Volvo]<ref>http://web.archive.org/web/20110714191457/qt.nokia.com/qt-in-use/story/customer/volvo-mobility-systems</ref>
** [http://siemens.com Siemens]<ref>http://web.archive.org/web/20110714191438/qt.nokia.com/qt-in-use/story/customer/siemens</ref>
** [http://panasonic.com Panasonic]<ref>http://web.archive.org/web/20110723145947/qt.nokia.com/about/news/panasonic-selects-qt-for-hd-video-system</ref>
** [http://valvesoftware.com Valve]<ref>https://developer.valvesoftware.com/wiki/Qt</ref>
* Main companies contributing to Qt in 2015<ref name="thiago's blog"/>:
** [http://qt.io The Qt Company] (Finland)
** [http://kdab.com KDAB] (Sweden)
** [http://audiocodes.com/ AudioCodes] (Israel)
** [http://intel.com Intel] (USA)
** [http://intopalo.com/ Intopalo] (Finland)
** [http://jolla.com Jolla] (Finland)
** [http://blackberry.com/ BlackBerry] (Canada)
** [http://woboq.com/ Woboq] (Germany)


* Service partners of The Qt Company<ref name="partners">https://www.qt.io/partners/</ref>:  
*One million downloads of Qt 5.3 measured just over a month after launch.<ref>http://www.digia.com/en/Company/News/Digia-Announces-The-Qt-Company-Launches-a-Unified-Website-and-Unleashes-a-20-Indie-Mobile-Monthly-Subscription-Plan/</ref>
** [http://basyskom.com/ basysKom] (Germany)
*250+ commits by 60+ contributors per week<ref name="thiago's blog">[http://www.macieira.org/blog/qt-stats/ Thiago Macieira's blog]</ref>
** [http://develer.com/ develer] (Italy)
*Leading companies and organizations in over 70 industries use Qt to power millions of devices and applications<ref>http://www.qt.io/qt-in-use/</ref>, including, but not limited to:
** [http://e-gits.com/ e-GITS] (Germany)
**[http://amd.com AMD]<ref>http://arstechnica.com/gaming/2015/11/amd-radeon-software-crimson-a-new-name-and-a-new-look-for-catalyst</ref>
** [http://ics.com/ ICS] (USA)
**[http://esa.int European Space Agency]<ref>http://web.archive.org/web/20110723145813/qt.nokia.com/qt-in-use/story/customer/esa-european-space-agency</ref>
** [http://kdab.com/ KDAB] (Sweden)
**[http://autodesk.com/ Autodesk]<ref>http://web.archive.org/web/20110723145736/qt.nokia.com/qt-in-use/autodesk/</ref>
** [http://qtomac.com/ Qtomac] (Australia)
**[http://wolfram.com/ Wolfram Research]<ref>http://web.archive.org/web/20110723145736/qt.nokia.com/qt-in-use/autodesk/</ref>
** [http://zuehlke.com/ Zühlke Engineering] (Germany)
**[http://3ds.com/ Dassault Systèmes]<ref>http://www.3ds.com/products-services/draftsight-cad-software/</ref>
**[http://lucasfilm.com/ Lucasfilm]<ref>http://www.businesswire.com/news/home/20071015006427/en/Lucasfilm-Ltd.-Trolltechs-Qt-Create-User-Interface#.VXCnRq3tmko</ref>
**[http://disneyanimation.com/ Walt Disney Animation Studios]<ref>http://web.archive.org/web/20110714191507/qt.nokia.com/qt-in-use/story/customer/walt-disney-feature-animation</ref>
**[http://volvo.com Volvo Mobility Systems]<ref>http://web.archive.org/web/20110714191457/qt.nokia.com/qt-in-use/story/customer/volvo-mobility-systems</ref>
**[http://siemens.com Siemens]<ref>http://web.archive.org/web/20110714191438/qt.nokia.com/qt-in-use/story/customer/siemens</ref>
**[http://panasonic.com Panasonic]<ref>http://web.archive.org/web/20110723145947/qt.nokia.com/about/news/panasonic-selects-qt-for-hd-video-system</ref>
**[http://valvesoftware.com Valve]<ref>https://developer.valvesoftware.com/wiki/Qt</ref>
**[http://cadsoft.de/ CadSoft]<ref>http://www.cadsoft.de/eagle-pcb-design-software/software-versionen/software-versionen-news-in-v7/</ref>
**[http://csc.fi/home/ Finnish IT center for science]<ref>https://www.csc.fi/web/elmer/links</ref>
**[http://kitware.com/ Kitware]<ref name="paraview overview">http://www.paraview.org/overview/</ref><ref name="paraview participants">http://www.paraview.org/participants/</ref>
**[http://nnsa.energy.gov/asc US National Nuclear Security Administration (ASC)]<ref name="paraview overview" /><ref name="paraview participants" />
**[http://sandia.gov/ Sandia National Laboratories]<ref name="paraview overview" /><ref name="paraview participants" />
**[http://lanl.gov/ Los Alamos National Laboratory]<ref name="paraview overview" /><ref name="paraview participants" />
**[http://www.arl.army.mil/ US Army Research Laboratory]<ref name="paraview overview" /><ref name="paraview participants" />
*Main companies contributing to Qt in 2015<ref name="thiago's blog" />:
**[http://qt.io The Qt Company] (Finland)
**[http://kdab.com KDAB] (Sweden)
**[http://audiocodes.com/ AudioCodes] (Israel)
**[http://intel.com Intel] (USA)
**[http://intopalo.com/ Intopalo] (Finland)
**[http://jolla.com Jolla] (Finland)
**[http://blackberry.com/ BlackBerry] (Canada)
**[http://woboq.com/ Woboq] (Germany)
 
*Service partners of The Qt Company<ref name="partners">https://www.qt.io/partners/</ref>:  
**[http://basyskom.com/ basysKom] (Germany)
**[http://develer.com/ develer] (Italy)
**[http://e-gits.com/ e-GITS] (Germany)
**[http://ics.com/ ICS] (USA)
**[http://kdab.com/ KDAB] (Sweden)
**[https://www.luxoft.com Luxoft] (Switzerland)
**[http://qtomac.com/ Qtomac] (Australia)
**[https://www.sequality.at Sequality] (Austria)
**[http://zuehlke.com/ Zühlke Engineering] (Germany)
 
*Technology partners<ref name="partners" />:
**[http://adeneo-embedded.com/ Adeneo Embedded] (France)
**[http://arm.com/ ARM] (UK)
**[http://boundarydevices.com/ Boundary Devices] (USA)
**[https://felgo.com Felgo] (Austria)
**[http://freescale.com/ Freescale Semiconductor] (USA)
**[http://froglogic.com/ froglogic] (Germany)
**[http://silica.com/ SILICA] (Germany)
**[http://ti.com Texas Instruments] (USA)
**[http://toradex.com Toradex] (Switzerland)
 
*Community partners<ref name="partners" />:
**[http://fruct.org/ FRUCT] (Finnish-Russian University Cooperation in Telecommunications)
**[http://ev.kde.org/ KDE e.V.] (non-profit organization of [http://kde.org KDE] community members)


* Technology partners<ref name="partners"/>:
==History==
** [http://adeneo-embedded.com/ Adeneo Embedded] (France)
** [http://arm.com/ ARM] (UK)
** [http://boundarydevices.com/ Boundary Devices] (USA)
** [http://freescale.com/ Freescale Semiconductor] (USA)
** [http://froglogic.com/ froglogic] (Germany)
** [http://silica.com/ SILICA] (Germany)
** [http://ti.com Texas Instruments] (USA)
** [http://toradex.com Toradex] (Switzerland)
** [http://v-play.com/ V-Play] (Austria)


* Community partners<ref name="partners"/>:
*[[Qt History]]
** [http://fruct.org/ FRUCT] (Finnish-Russian University Cooperation in Telecommunications)
*[[Releases|Release history]]
** [http://ev.kde.org/ KDE e.V.] (non-profit organization of [http://kde.org KDE] community members)


== History ==  
==References==
[[File:Qt 20years infographic big.jpg|thumbnail]]
<references />
[[File:Qt-history-logos 1995-2015.gif|thumbnail]]
* “In the summer of 1990, Haavard [Nord] and Eirik [Chambe-Eng] were working together on a C++ database application for ultrasound images. The system needed to be able to run with a GUI on Unix, Macintosh, and Windows. One day that summer, Haavard and Eirik went outside to enjoy the sunshine, and as they sat on a park bench, Haavard said, “We need an object-oriented display system.” The resulting discussion laid the intellectual foundation for the object-oriented cross-platform GUI framework they would soon go on to build.”<ref>Blanchette, J & Summerfield, M. (2006). C++ GUI Programming with Qt 4. Prentice Hall.</ref>
* [[Releases|Release history]]


== References ==
==External links==
<references/>


== External links ==
*[http://en.wikipedia.org/wiki/Qt_(software) Qt on Wikipedia]
* [http://en.wikipedia.org/wiki/Qt_(software) Qt on Wikipedia]

Latest revision as of 14:56, 18 July 2022

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

What is Qt?

Qt is a cross-platform application development framework for desktop, embedded and mobile. Supported Platforms include Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS and others.

Qt is not a programming language on its own. It is a framework written in C++. A preprocessor, the MOC (Meta-Object Compiler), is used to extend the C++ language with features like signals and slots. Before the compilation step, the MOC parses the source files written in Qt-extended C++ and generates standard compliant C++ sources from them. Thus the framework itself and applications/libraries using it can be compiled by any standard compliant C++ compiler like Clang, GCC, ICC, MinGW and MSVC.

The Qt Company and The Qt Project

Development of Qt was started in 1990 by the Norwegian programmers Eirik Chambe-Eng and Haavard Nord. Their company, Trolltech, that sold Qt licenses and provided support, went through several acquisitions over the years. Today former Trolltech is named The Qt Company and is a wholly owned subsidiary of Digia Plc., Finland. Although The Qt Company is the main driver behind Qt, Qt is now developed by a bigger alliance: The Qt Project. It consists of many companies and individuals around the globe and follows a meritocratic governance model.

Everyone who wants to, individuals and companies, can join the effort. There are many ways one can contribute to the Qt Project, e.g. by writing code or documentation for the framework, reporting bugs, helping other users on the forum or maintaining pages on this wiki (see also http://qt.io/contribute/).

License

Qt is available under various licenses: The Qt Company sells commercial licenses, but Qt is also available as free software under several versions of the GPL and the LGPL (Licensing FAQ).

Build System

Although any build system can be used with Qt, Qt brings its own qmake. It is a cross-platform frontend for platform-native build systems, like GNU Make, Visual Studio and Xcode.

CMake is also a popular alternative to build Qt projects. Qt 4 support has been integrated years ago, and Qt 5 provided support early.

A new player entered the game recently: The Qt Build Suite a.k.a Qbs. Qbs is a QML based build system which also provides support for Javascript. This build system not only provides building capability but also packaging like cmake.

IDE

Qt comes with its own Integrated Development Environment (IDE), named Qt Creator. It runs on Linux, OS X and Windows and offers intelligent code completion, syntax highlighting, an integrated help system, debugger and profiler integration and also integration for all major version control systems (e.g. git, Bazaar). In addition to Qt Creator, developers on Windows can also use Qt's Visual Studio Add-in. Other IDEs (e.g. KDevelop on KDE) can also be used. But of course it is in no way mandatory to use any IDE at all.

Internationalization and Localization

Qt features excellent support for internationalization (i18n) and localization (l10n). The tool Qt Linguist and its companions lupdate, lrelease and lconvert make it easy to translate applications to locale languages. Qt supports most languages and writing systems that are in use today. For a complete listing see the corresponding manual pages.

Widgets

With Qt, GUIs can be written directly in C++ using its Widgets module. Qt also comes with an interactive graphical tool called Qt Designer which functions as a code generator for Widgets based GUIs. Qt Designer can be used stand-alone but is also integrated into Qt Creator.

QtQuick

Another way to write GUIs with Qt is to use the QtQuick module. GUIs using QtQuick are written in QML. QML is a declarative object description language that integrates Javascript for procedural programming. QtQuick provides the necessary modules for GUI development with QML. It is possible to write whole applications in QML only, but usually only the GUI is written in QML and the application's backend is implemented in C++ (see Integrating QML and C++). Also Qt Creator features an integrated QtQuick GUI designer and profiler.

More Modules

Qt is far more than a GUI toolkit. It provides modules for cross-platform development in the areas of networking, databases, OpenGL, web technologies, sensors, communications protocols (Bluetooth, serial ports, NFC), XML and JSON processing, printing, PDF generation, and much more.

For a full list of official Qt modules, see the All Modules page in the Qt documentation.

Also, see Inqlude.org for a list of 3rd-party modules based on Qt, for use in Qt projects.

Language Bindings

Although applications using Qt are usually written in C++ and QML bindings to other languages exist. These are not part of Qt but are provided by various third parties. Riverbank Computing for example provides commercial and free software Python bindings (PyQt). For more language bindings see Category:LanguageBindings.

Facts and Figures

  • Community partners[19]:
    • FRUCT (Finnish-Russian University Cooperation in Telecommunications)
    • KDE e.V. (non-profit organization of KDE community members)

History

References

  1. http://www.digia.com/en/Company/News/Digia-Announces-The-Qt-Company-Launches-a-Unified-Website-and-Unleashes-a-20-Indie-Mobile-Monthly-Subscription-Plan/
  2. 2.0 2.1 Thiago Macieira's blog
  3. http://www.qt.io/qt-in-use/
  4. http://arstechnica.com/gaming/2015/11/amd-radeon-software-crimson-a-new-name-and-a-new-look-for-catalyst
  5. http://web.archive.org/web/20110723145813/qt.nokia.com/qt-in-use/story/customer/esa-european-space-agency
  6. http://web.archive.org/web/20110723145736/qt.nokia.com/qt-in-use/autodesk/
  7. http://web.archive.org/web/20110723145736/qt.nokia.com/qt-in-use/autodesk/
  8. http://www.3ds.com/products-services/draftsight-cad-software/
  9. http://www.businesswire.com/news/home/20071015006427/en/Lucasfilm-Ltd.-Trolltechs-Qt-Create-User-Interface#.VXCnRq3tmko
  10. http://web.archive.org/web/20110714191507/qt.nokia.com/qt-in-use/story/customer/walt-disney-feature-animation
  11. http://web.archive.org/web/20110714191457/qt.nokia.com/qt-in-use/story/customer/volvo-mobility-systems
  12. http://web.archive.org/web/20110714191438/qt.nokia.com/qt-in-use/story/customer/siemens
  13. http://web.archive.org/web/20110723145947/qt.nokia.com/about/news/panasonic-selects-qt-for-hd-video-system
  14. https://developer.valvesoftware.com/wiki/Qt
  15. http://www.cadsoft.de/eagle-pcb-design-software/software-versionen/software-versionen-news-in-v7/
  16. https://www.csc.fi/web/elmer/links
  17. 17.0 17.1 17.2 17.3 17.4 http://www.paraview.org/overview/
  18. 18.0 18.1 18.2 18.3 18.4 http://www.paraview.org/participants/
  19. 19.0 19.1 19.2 https://www.qt.io/partners/

External links