Qt Charts C++ Classes

C++ classes for the Qt Charts API. More...

This module is deprecated since 6.10. We strongly advise against using it in new code.

Detailed Description

Use QtGraphs instead.

Charts API is built on top of Qt Graphics View Framework. Charts can be displayed as QGraphicsWidget using the QChart class. However there is also the convenience class QChartView, which is QWidget based. These enable us to quickly use Qt Charts as a normal Qt widget.

Note: The Qt Charts module has been deprecated since Qt 6.10. For new projects, use the Qt Graphs module instead. Qt Graphs uses each platform's native rendering backend (Metal on macOS, DirectX on Windows, OpenGL or Vulkan on Linux) to achieve hardware-accelerated rendering for both 2D and 3D graphs. Qt Graphs uses Qt Quick Shapes for 2D graph rendering, instead of the outdated Qt Graphics View Framework used by the Qt Charts module. To migrate from Qt Charts to Qt Graphs module, refer to Qt Graphs Migration from Qt Charts.

Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including CMake and qmake.

Note: Projects created with Qt Creator's Qt Quick Application wizard are based on the Qt Quick 2 template that uses QGuiApplication by default. All such QGuiApplication instances in the project must be replaced with QApplication as the module depends on Qt's Graphics View Framework for rendering.

To use the module with CMake, use the find_package() command to locate the needed module components in the Qt6 package:

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

To use the module for building with qmake, add the module as a value of the QT variable in the project's .pro file:

 QT += charts

Each chart type is represented by the QAbstractSeries derived class. To create charts, the users have to use an instance of the related series class and add it to a QChart instance.

 QLineSeries* series = new QLineSeries();
 series->append(0, 6);
 series->append(2, 4);
 ...
 chartView->chart()->addSeries(series);
 chartView->chart()->createDefaultAxes();