Qt Core
Core Functionalities
Qt Core adds these features to C++:
- a very powerful mechanism for seamless object communication called signals and slots
- queryable and designable object properties
- hierarchical and queryable object trees that organize
- object ownership in a natural way with guarded pointers (QPointer)
- a dynamic cast that works across library boundaries
The following pages provide more information about Qt's core features:
Using the Module
Using a Qt module requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including CMake and qmake.
Building with CMake
Use the find_package()
command to locate the needed module components in the Qt5
package:
find_package(Qt5 COMPONENTS Core REQUIRED) target_link_libraries(mytarget Qt5::Core)
See also the Build with CMake overview.
Building with qmake
If you use qmake to build your projects, Qt5Core is linked by default.
Threading and Concurrent Programming
Qt provides thread support in the form of platform-independent threading classes, a thread-safe way of posting events, and signal-slot connections across threads. Multithreaded programming is also a useful paradigm for performing time-consuming operations without freezing the user interface of an application.
The Thread Support in Qt page contains information on implementing threads in applications. Additional concurrent classes are provided by the Qt Concurrent module.
Input/Output, Resources, and Containers
Qt provides a resource system for organizing application files and assets, a set of containers, and classes for receiving input and printing output.
In addition, Qt Core provides a platform-independent mechanism for storing binary files in the application's executable.
Additional Frameworks
Qt Core also provides some of Qt's key frameworks.
- The Animation Framework
- JSON Support in Qt
- The State Machine Framework
- How to Create Qt Plugins
- The Event System
Licenses and Attributions
Qt Core is available under commercial licenses from The Qt Company. In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are GNU Lesser General Public License, version 3, or the GNU General Public License, version 2. See Qt Licensing for further details.
Executables on Windows potentially link against The qtmain Library. This library is available under commercial licenses and also under the BSD 3-clause "New" or "Revised" License.
Furthermore, Qt Core in Qt 5.15.18 may contain third party modules under following permissive licenses:
Apache Tika MimeType Definitions, version 019041117149667bc4d18fabf222a0670d407959 | Apache License 2.0 |
zlib License | |
BSD 3-clause "New" or "Revised" License | |
Efficient Binary-Decimal and Decimal-Binary Conversion Routines for IEEE Doubles, version 3.1.5 | BSD 3-clause "New" or "Revised" License |
FreeBSD strtoll and strtoull, version 18b29f3fb8abee5d57ed8f4a44f806bec7e0eeff | BSD 3-clause "New" or "Revised" License |
Public Domain | |
Public Domain | |
BSD 2-clause "Simplified" License | |
BSD 3-clause "New" or "Revised" License with PCRE2 binary-like Packages Exception | |
BSD 3-clause "New" or "Revised" License | |
Public Domain | |
Creative Commons Zero v1.0 Universal | |
BSD 2-clause "Simplified" License | |
BSD 3-clause "New" or "Revised" License | |
BSD 2-clause "Simplified" License | |
BSD 2-clause "Simplified" License | |
BSD 2-clause "Simplified" License | |
BSD 2-clause "Simplified" License | |
BSD 2-clause "Simplified" License | |
BSD 2-clause "Simplified" License | |
BSD 2-clause "Simplified" License | |
The Public Suffix List, version 903a83ff7bfc3148e3692e09396f9f3bdc9462ef, fetched on 2024-06-28 | Mozilla Public License 2.0 |
MIT License | |
Unicode License Agreement - Data Files and Software (2016) | |
Unicode License Agreement - Data Files and Software (2016) | |
MIT License |
Reference
These are links to the API reference materials.
© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.