1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Charts module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 or (at your option) any later version
20** approved by the KDE Free Qt Foundation. The licenses are as published by
21** the Free Software Foundation and appearing in the file LICENSE.GPL3
22** included in the packaging of this file. Please review the following
23** information to ensure the GNU General Public License requirements will
24** be met: https://www.gnu.org/licenses/gpl-3.0.html.
25**
26** $QT_END_LICENSE$
27**
28****************************************************************************/
29
30#include <QtWidgets/QApplication>
31#include <QtWidgets/QMainWindow>
32#include <QtCharts/QChartView>
33#include <QtCharts/QLineSeries>
34#include <QtCharts/QCategoryAxis>
35
36QT_CHARTS_USE_NAMESPACE
37
38int main(int argc, char *argv[])
39{
40 QApplication a(argc, argv);
41
42//![1]
43 QLineSeries *series = new QLineSeries();
44 *series << QPointF(0, 6) << QPointF(9, 4) << QPointF(15, 20) << QPointF(25, 12) << QPointF(29, 26);
45 QChart *chart = new QChart();
46 chart->legend()->hide();
47 chart->addSeries(series);
48//![1]
49
50//![2]
51 // Customize series
52 QPen pen(QRgb(0xfdb157));
53 pen.setWidth(5);
54 series->setPen(pen);
55
56 // Customize chart title
57 QFont font;
58 font.setPixelSize(18);
59 chart->setTitleFont(font);
60 chart->setTitleBrush(QBrush(Qt::white));
61 chart->setTitle("Customchart example");
62
63 // Customize chart background
64 QLinearGradient backgroundGradient;
65 backgroundGradient.setStart(QPointF(0, 0));
66 backgroundGradient.setFinalStop(QPointF(0, 1));
67 backgroundGradient.setColorAt(pos: 0.0, color: QRgb(0xd2d0d1));
68 backgroundGradient.setColorAt(pos: 1.0, color: QRgb(0x4c4547));
69 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
70 chart->setBackgroundBrush(backgroundGradient);
71
72 // Customize plot area background
73 QLinearGradient plotAreaGradient;
74 plotAreaGradient.setStart(QPointF(0, 1));
75 plotAreaGradient.setFinalStop(QPointF(1, 0));
76 plotAreaGradient.setColorAt(pos: 0.0, color: QRgb(0x555555));
77 plotAreaGradient.setColorAt(pos: 1.0, color: QRgb(0x55aa55));
78 plotAreaGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
79 chart->setPlotAreaBackgroundBrush(plotAreaGradient);
80 chart->setPlotAreaBackgroundVisible(true);
81//![2]
82
83//![3]
84 QCategoryAxis *axisX = new QCategoryAxis();
85 QCategoryAxis *axisY = new QCategoryAxis();
86
87 // Customize axis label font
88 QFont labelsFont;
89 labelsFont.setPixelSize(12);
90 axisX->setLabelsFont(labelsFont);
91 axisY->setLabelsFont(labelsFont);
92
93 // Customize axis colors
94 QPen axisPen(QRgb(0xd18952));
95 axisPen.setWidth(2);
96 axisX->setLinePen(axisPen);
97 axisY->setLinePen(axisPen);
98
99 // Customize axis label colors
100 QBrush axisBrush(Qt::white);
101 axisX->setLabelsBrush(axisBrush);
102 axisY->setLabelsBrush(axisBrush);
103
104 // Customize grid lines and shades
105 axisX->setGridLineVisible(false);
106 axisY->setGridLineVisible(false);
107 axisY->setShadesPen(Qt::NoPen);
108 axisY->setShadesBrush(QBrush(QColor(0x99, 0xcc, 0xcc, 0x55)));
109 axisY->setShadesVisible(true);
110//![3]
111
112//![4]
113 axisX->append(label: "low", categoryEndValue: 10);
114 axisX->append(label: "optimal", categoryEndValue: 20);
115 axisX->append(label: "high", categoryEndValue: 30);
116 axisX->setRange(min: 0, max: 30);
117
118 axisY->append(label: "slow", categoryEndValue: 10);
119 axisY->append(label: "med", categoryEndValue: 20);
120 axisY->append(label: "fast", categoryEndValue: 30);
121 axisY->setRange(min: 0, max: 30);
122
123 chart->addAxis(axis: axisX, alignment: Qt::AlignBottom);
124 chart->addAxis(axis: axisY, alignment: Qt::AlignLeft);
125 series->attachAxis(axis: axisX);
126 series->attachAxis(axis: axisY);
127//![4]
128
129//![5]
130 QChartView *chartView = new QChartView(chart);
131 chartView->setRenderHint(hint: QPainter::Antialiasing);
132//![5]
133
134//![6]
135 QMainWindow window;
136 window.setCentralWidget(chartView);
137 window.resize(w: 400, h: 300);
138 window.show();
139//![6]
140
141 return a.exec();
142}
143

source code of qtcharts/examples/charts/customchart/main.cpp