Qt Core

The Qt Core module 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 Qt6 package:

find_package(Qt6 COMPONENTS Core REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Core)

See also the Build with CMake overview.

Building with qmake

If you use qmake to build your projects, Qt6Core 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.

Module Evolution

Changes to Qt Core lists important changes in the module API and functionality that were done for the Qt 6 series of Qt.

Licenses and Attributions

Qt Core is available under commercial licenses from The Qt Company. In addition, it is available under free software licenses: The 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 QtEntryPoint Library. This library is available under commercial licenses and also under the BSD 3-clause "New" or "Revised" License.

Furthermore, Qt Core in Qt 6.0.0 may contain third party modules under following permissive licenses:

BLAKE2 (reference implementation), version 3d6155ab1682e68c30f93064f988247508f55bbe

Creative Commons Zero v1.0 Universal or Apache License 2.0

Data Compression Library (zlib), version 1.2.11

zlib License

Easing Equations by Robert Penner

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

KWin, version 5.13.4

BSD-3-Clause

MD4

Public Domain

MD5

Public Domain

PCRE2 - Stack-less Just-In-Time Compiler, version 10.36

BSD 2-clause "Simplified" License

PCRE2, version 10.36

BSD 3-clause "New" or "Revised" License

QEventDispatcher on macOS

BSD 3-clause "New" or "Revised" License

Secure Hash Algorithm SHA-1

Public Domain

Secure Hash Algorithm SHA-3 - Keccak, version 3.2

Creative Commons Zero v1.0 Universal

Secure Hash Algorithm SHA-3 - brg_endian, version https://github.com/BrianGladman/sha/ commit 4b9e13ead2c5b5e41ca27c65de4dd69ae0bac228

BSD 2-clause "Simplified" License

Secure Hash Algorithms SHA-384 and SHA-512

BSD 3-clause "New" or "Revised" License

SipHash Algorithm

Creative Commons Zero v1.0 Universal

The Public Suffix List, version f8247fa33109a86679b1c8edb109542b85851110, fetched on 2020-11-05

Mozilla Public License 2.0

TinyCBOR, version 0.6+patches

MIT License

Unicode Character Database (UCD), version 26

Unicode License Agreement - Data Files and Software (2016)

Unicode Common Locale Data Repository (CLDR), version v38

Unicode License Agreement - Data Files and Software (2016)

extra-cmake-modules, version 5.50.0

BSD-3-Clause

forkfd

MIT License

Reference

These are links to the API reference materials.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qtcore-index.html