About Qt: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Added some notes)
(turned notes into whole sentences)
Line 1: Line 1:
{{LangSwitch}}
{{LangSwitch}}
== 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.
[[Wikipedia:Qt_(software)|Qt on Wikipedia]]


Qt is not a programming language by its on. It is a framework written in C++. A preprocessor, called [http://doc.qt.io/qt-5/moc.html MOC (Meta-Object Compiler)], is used to extend the C++ language with features like signals and slots. At compile-time the MOC parses the source files written in Qt-extended C++ and generates standard compliant C++ sources from it. Thus the framework itself and applications using it can be compiled by any standard compliant C++ compiler like Clang, gcc, ICC, MinGW and MSVC.
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 GNU make, Visual Studio and Xcode. Of course it is not mandatory to use qmake.
Qt comes with its own Integrated Development Environment (IDE), named [[Qt Creator]]. It runs on Linux, OS X and Windows and offers 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 Microsoft 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 [[Qt Creator]], [http://visualstudio.com/ Visual Studio] or any IDE at all.
With Qt, GUIs can be written directly in C++ using its QWidgets module. Qt also comes with an interactive graphical tool called [[Qt Designer]] that functions as a code generator for QWidgets based GUIs.
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 [http://doc.qt.io/qt-5/qtqml-cppintegration-topic.html Integrating QML and C++]).
Although applications using Qt are usually written in C++ and QML bindings to other languages exists but are not part of Qt itself. Qt5 bindings to [http://python.org Python] for example are provided by [http://www.riverbankcomputing.co.uk/software/pyqt/intro PyQt (Riverbank Computing Ltd.)].


* framework
* cross-platform
* application development
* C++, extensions with [http://doc.qt.io/qt-5/moc.html MOC]
* GUIs in QML (QtQuick) or XML (QWidgets)
* Desktop, embedded, mobile: Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS,..., see [[Supported Platforms]]
* Bindings to other programming languages, e.g. to [http://python.org Python] using [http://www.riverbankcomputing.co.uk/software/pyqt/intro PyQt]
* Qt is owned by The Qt Company (wholly owned subsidiary of [http://www.digia.com/ Digia Plc.], Finland)
* Qt is owned by The Qt Company (wholly owned subsidiary of [http://www.digia.com/ Digia Plc.], Finland)
* [[The Qt Governance Model]]
* [[The Qt Governance Model]]
Line 16: Line 19:
* Different licenses: Multiple commercial licenses, LGPL, GPL, see: [http://www.qt.io/FAQ/ Licensing FAQ]
* Different licenses: Multiple commercial licenses, LGPL, GPL, see: [http://www.qt.io/FAQ/ Licensing FAQ]
* superb documentation
* superb documentation
* Brings own IDE ([[Qt Creator]]) for Linux, OS X and Windows; code completion, syntax highlighting, integrated help system, debugger and profiler integration, integration for all major version control systems, GUI designer
 
* Brings add-in for [http://visualstudio.com/ Microsoft Visual Studio]
* Internationalization tools
* Other IDEs can be used
* Brings additional tools like build system (qmake, other build systems like cmake also supported) and internationalization tools


== Statistics ==
== Statistics ==
Line 67: Line 68:
* “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>
* “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]]
* [[Releases|Release history]]
== References ==
== References ==
----
<references/>
<references/>
== External links ==
* [http://en.wikipedia.org/wiki/Qt_(software) Qt on Wikipedia]

Revision as of 14:40, 4 June 2015

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

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, called MOC (Meta-Object Compiler), is used to extend the C++ language with features like signals and slots. At compile-time the MOC parses the source files written in Qt-extended C++ and generates standard compliant C++ sources from it. Thus the framework itself and applications using it can be compiled by any standard compliant C++ compiler like Clang, gcc, ICC, MinGW and MSVC.

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 GNU make, Visual Studio and Xcode. Of course it is not mandatory to use qmake.

Qt comes with its own Integrated Development Environment (IDE), named Qt Creator. It runs on Linux, OS X and Windows and offers 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 Microsoft 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 Qt Creator, Visual Studio or any IDE at all.

With Qt, GUIs can be written directly in C++ using its QWidgets module. Qt also comes with an interactive graphical tool called Qt Designer that functions as a code generator for QWidgets based GUIs.

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++).

Although applications using Qt are usually written in C++ and QML bindings to other languages exists but are not part of Qt itself. Qt5 bindings to Python for example are provided by PyQt (Riverbank Computing Ltd.).

  • Qt is owned by The Qt Company (wholly owned subsidiary of Digia Plc., Finland)
  • The Qt Governance Model
  • Developed by many parties (see stats)
  • Different licenses: Multiple commercial licenses, LGPL, GPL, see: Licensing FAQ
  • superb documentation
  • Internationalization tools

Statistics

  • 1 million downloads of Qt 5.3 measured just over a month after launch.[1]
  • 250+ commits by 60+ contributors per week[2]
  • Leading companies in over 70 industries use Qt to power millions of devices and applications.[3]
  • Community partners[4]:
    • FRUCT (Finnish-Russian University Cooperation in Telecommunications)
    • KDE e.V. (non-profit organization of KDE community members)

History

Qt 20years infographic big.jpg
Qt-history-logos 1995-2015.gif
  • “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.”[5]
  • Release history

References

External links