summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaishree Vyas <Jaishree.Vyas@qt.io>2023-03-28 13:32:59 +0200
committerJaishree Vyas <Jaishree.Vyas@qt.io>2023-04-26 13:38:26 +0200
commitdda028dc3cad0d1cf3683b941e98ecef03ebccb2 (patch)
tree7956fa3530bb74bb14ecae25262ff002cc413282
parent246de2b92900ee80928de0872faaa81c3a7fa2e4 (diff)
downloadqtdoc-dda028dc3cad0d1cf3683b941e98ecef03ebccb2.tar.gz
Doc: Qt Languages overview
An overview of programming languages that you can use to write Qt applications. Task-number: QTBUG-111332 Pick-to: 6.5 Change-Id: I3dbbca43edca030a6498d0c19c7f1075fc6bc70b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
-rw-r--r--doc/src/language-overview.qdoc100
-rw-r--r--doc/src/topics.qdoc1
2 files changed, 101 insertions, 0 deletions
diff --git a/doc/src/language-overview.qdoc b/doc/src/language-overview.qdoc
new file mode 100644
index 00000000..7d833b82
--- /dev/null
+++ b/doc/src/language-overview.qdoc
@@ -0,0 +1,100 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \page qtlanguages.html
+ \title Qt Languages
+ \brief An overview of programming languages that you can use to write Qt applications.
+
+ The Qt API is implemented in C++, and provides additional features for easier
+ cross-platform development. Qt supports QML, its own declarative language
+ built on top of JavaScript, and Qt Quick, a framework built on top of QML.
+ It is designed to describe a program's user interface: what it looks like and
+ how it behaves. As an alternative to using C++, bindings to Qt exist for
+ Python as \l {Qt for Python}.
+
+ \section1 C++
+ The Qt framework contains a comprehensive set of highly intuitive and
+ modularized C++ library classes and is loaded with APIs to simplify your
+ application development.
+ Qt provides an intuitive C++ class library with a rich set of application
+ build blocks for C++ development and adds the following features to C++:
+
+ \list
+ \li A powerful mechanism for seamless object communication called
+ \l{signals and slots}
+ \li Queryable and designable \l{Qt's Property System}{object
+ properties}
+ \li Powerful \l{The Event System}{events and event filters}
+ \li Contextual \l{Internationalization with Qt}{string translation for
+ internationalization}
+ \li Sophisticated interval-driven \l {Timers}{timers} that make it possible
+ to elegantly integrate many tasks in an event-driven GUI
+ \li Hierarchical and queryable \l{Object Trees & Ownership}{object
+ trees} that organize object ownership in a natural way
+ \li A \l{metaobjects.html#qobjectcast}{dynamic cast} that works across
+ library boundaries
+ \li Support for integration of \l {Creating Custom Qt Types}{custom types}
+ into Qt metatype system
+ \endlist
+
+ \section1 QML
+
+ \l {Qt QML} provides a framework for developing applications and libraries
+ with the \l{QML Applications}{QML language}. It defines and implements
+ the language and engine infrastructure, and provides an API to enable and
+ extend the QML language with custom types and integrate QML code
+ with JavaScript and C++. The Qt QML module provides both a \l{Qt QML QML Types}
+ {QML API} and a \l{Qt QML C++ Classes}{C++ API}.
+
+ The \l {Qt QML} module provides the language and infrastructure
+ for QML applications. The \l{Qt Quick} module provides many visual components,
+ model-view support, an animation framework, and much more for building user
+ interfaces.
+
+ The QML language allows you to define trees of objects with a JSON-like syntax.
+ It also allows you to implement logic in JavaScript.
+
+ \section2 JavaScript for QML Applications
+ JavaScript expressions allow QML code to contain application logic.
+ Qt QML provides the framework for running JavaScript expressions in QML and
+ from C++. It supports:
+
+ \list
+ \li Quick development of both user-interfaces and application logic.
+ \li The \l {JavaScript Host Environment} provided by QML that can run valid
+ JavaScript, as specified in the 7th edition of the standard, as well as
+ some extensions from later standards.
+ \li The dynamic creation of objects from within JavaScript. This is useful to
+ delay instantiation of objects until necessary, thereby improving application
+ startup time.
+ \endlist
+
+ \section1 Qt for Python
+
+ \l {Qt for Python} offers the official Python bindings for Qt, which enables you
+ to use Python to write your Qt applications. The project has the following components:
+ \list
+ \li \l {https://doc.qt.io/qtforpython/api.html} {PySide6}: The official
+ Python bindings for Qt 6
+ \li \l {https://doc.qt.io/qtforpython-6/shiboken6/index.html} {Shiboken6}:
+ A binding generator tool, to expose C++ code to Python
+ \li \l {https://doc.qt.io/qtforpython/gettingstarted/package_details.html#tools-included}
+ {Tooling}: To make application development easier with PySide6
+ \li \l {https://doc.qt.io/qtforpython/shiboken6/shibokenmodule.html} {Shiboken module}:
+ Provides utility functions for debugging
+ \endlist
+
+ \section2 Related Content
+
+ \list
+ \li \l {https://doc.qt.io/qtforpython/faq/whyqtforpython.html} {Why Qt for Python?}
+ \li \l {https://doc.qt.io/qtforpython/gettingstarted/porting_from2.html}
+ {Porting Applications from PySide2 to PySide6}
+ \li \l {https://doc.qt.io/qtforpython/deployment/index.html#deployment-guides}
+ {Deploying PySide6 application}
+ \li \l {https://doc.qt.io/qtforpython/considerations.html} {Considerations}
+ \li \l {https://doc.qt.io/qtforpython/videos.html} {Webinars and Talks}
+ \endlist
+
+*/
diff --git a/doc/src/topics.qdoc b/doc/src/topics.qdoc
index 7bd071a6..96937d0d 100644
--- a/doc/src/topics.qdoc
+++ b/doc/src/topics.qdoc
@@ -23,6 +23,7 @@ functionality and can be used as a starting point for learning how to to get the
\li \l {Scripting}
\li \l {Internationalization with Qt}
\li \l {Testing and Debugging}
+\li \l {Qt Languages}
\endlist
\section1 Best Practices