Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtcore-index.qdoc
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
3
4/*!
5 \page qtcore-index.html
6 \title Qt Core
7
8 \brief The Qt Core module is part of Qt's essential modules.
9
10
11 The Qt Core module adds these features to C++:
12
13 \list
14 \li a very powerful mechanism for seamless object communication called
15 signals and slots
16 \li queryable and designable object properties
17 \li hierarchical and queryable object trees that organize object ownership
18 in a natural way with guarded pointers (QPointer)
19 \li a dynamic cast that works across library boundaries
20 \endlist
21
22 The following pages provide more information about Qt's core features:
23 \list
24 \li \l{The Meta-Object System}
25 \li \l{The Property System}
26 \li \l{Object Model}
27 \li \l{Object Trees & Ownership}
28 \li \l{Signals & Slots}
29 \endlist
30
31 \section1 Using the Module
32
33 \include {module-use.qdocinc} {using the c++ api}
34
35 \section2 Building with CMake
36
37 \include {module-use.qdocinc} {building with cmake} {Core}
38
39 \section2 Building with qmake
40
41 If you use \l qmake to build your projects, Qt Core is linked by default.
42
43 \section1 Threading and Concurrent Programming
44
45 Qt provides thread support in the form of platform-independent \l{Threading
46 Classes}{threading classes}, a thread-safe way of posting events, and
47 signal-slot connections across threads. Multithreaded programming is also a
48 useful paradigm for performing time-consuming operations without freezing
49 the user interface of an application.
50
51 The \l{Multi-threading in Qt} page contains information on implementing
52 threads in applications. Additional concurrent classes are provided by the
53 \l{Qt Concurrent} module.
54
55 \section1 Input/Output, Resources, and Containers
56
57 Qt provides a resource system for organizing application files and assets,
58 a set of containers, and classes for receiving input and printing output.
59 \list
60 \li \l{Container Classes}
61 \li \l{Serializing Qt Data Types}
62 \li \l{Implicit Sharing}
63 \endlist
64
65 In addition, Qt Core provides a platform-independent mechanism for storing
66 binary files in the application's executable.
67
68 \list
69 \li \l{The Qt Resource System}
70 \endlist
71
72 \section1 Additional Frameworks
73 Qt Core also provides some of Qt's key frameworks.
74
75 \list
76 \li \l{The Animation Framework}
77 \li \l{JSON Support in Qt}
78 \li \l{CBOR Support in Qt}
79 \li \l{Inter-Process Communication}
80 \li \l{How to Create Qt Plugins}
81 \li \l{The Event System}
82 \li \l{Application Permissions}
83 \endlist
84
85 \section1 Reference
86
87 \list
88 \li \l{Qt Core C++ Classes}{C++ Classes}
89 \list
90 \li \l{Animation Framework}{Animation Classes}
91 \li \l{Threading Classes}
92 \li \l{Container Classes}
93 \li \l{Plugin Classes}
94 \li \l{Implicitly Shared Classes}
95 \li \l{Input/Output and Networking}{Input/Output Classes}
96 \li \l{Event Classes}
97 \endlist
98 \li CMake API
99 \list
100 \li \l{CMake Commands in Qt6 Core}{CMake Commands}
101 \li \l{CMake Variables in Qt6 Core}{CMake Variables}
102 \li \l{CMake Deployment Variables in Qt6 Core}{CMake Deployment Variables}
103 \li \l{CMake Target Properties in Qt6 Core}{CMake Target Properties}
104 \endlist
105 \endlist
106
107 \section1 Module Evolution
108
109 \l{Changes to Qt Core} lists important changes in the module API
110 and functionality that were made for the Qt 6 series of Qt.
111
112 \section1 Licenses and Attributions
113
114 Qt Core is available under commercial licenses from \l{The Qt Company}.
115 In addition, it is available under free software licenses:
116 The \l{GNU Lesser General Public License, version 3}, or
117 the \l{GNU General Public License, version 2}.
118 See \l{Qt Licensing} for further details.
119
120 Executables on Windows potentially link
121 against \l{The QtEntryPoint Library}. This library is available
122 under commercial licenses and also under the
123 \l{BSD 3-clause "New" or "Revised" License}.
124
125 Furthermore, Qt Core in Qt \QtVersion may contain third party
126 modules under the following permissive licenses:
127
128 \annotatedlist attributions-qtcore
129*/