diff options
author | Jaishree Vyas <Jaishree.Vyas@qt.io> | 2023-03-28 13:32:59 +0200 |
---|---|---|
committer | Jaishree Vyas <Jaishree.Vyas@qt.io> | 2023-04-26 13:38:26 +0200 |
commit | dda028dc3cad0d1cf3683b941e98ecef03ebccb2 (patch) | |
tree | 7956fa3530bb74bb14ecae25262ff002cc413282 /doc/src | |
parent | 246de2b92900ee80928de0872faaa81c3a7fa2e4 (diff) | |
download | qtdoc-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>
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/language-overview.qdoc | 100 | ||||
-rw-r--r-- | doc/src/topics.qdoc | 1 |
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 |