main.cpp
140 lines
| 4.4 KiB
| text/x-c
|
CppLexer
winter
|
r0 | /**************************************************************************** | ||
** | ||||
** Copyright (C) 2016 The Qt Company Ltd. | ||||
** Contact: https://www.qt.io/licensing/ | ||||
** | ||||
** This file is part of the Qt Charts module of the Qt Toolkit. | ||||
** | ||||
** $QT_BEGIN_LICENSE:GPL$ | ||||
** Commercial License Usage | ||||
** Licensees holding valid commercial Qt licenses may use this file in | ||||
** accordance with the commercial license agreement provided with the | ||||
** Software or, alternatively, in accordance with the terms contained in | ||||
** a written agreement between you and The Qt Company. For licensing terms | ||||
** and conditions see https://www.qt.io/terms-conditions. For further | ||||
** information use the contact form at https://www.qt.io/contact-us. | ||||
** | ||||
** GNU General Public License Usage | ||||
** Alternatively, this file may be used under the terms of the GNU | ||||
** General Public License version 3 or (at your option) any later version | ||||
** approved by the KDE Free Qt Foundation. The licenses are as published by | ||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3 | ||||
** included in the packaging of this file. Please review the following | ||||
** information to ensure the GNU General Public License requirements will | ||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html. | ||||
** | ||||
** $QT_END_LICENSE$ | ||||
** | ||||
****************************************************************************/ | ||||
#include <QtWidgets/QApplication> | ||||
#include <QtWidgets/QMainWindow> | ||||
#include <QtCharts/QChartView> | ||||
#include <QtCharts/QLineSeries> | ||||
#include <QtCharts/QCategoryAxis> | ||||
QT_CHARTS_USE_NAMESPACE | ||||
int main(int argc, char *argv[]) | ||||
{ | ||||
QApplication a(argc, argv); | ||||
//![1] | ||||
QLineSeries *series = new QLineSeries(); | ||||
*series << QPointF(0, 6) << QPointF(9, 4) << QPointF(15, 20) << QPointF(25, 12) << QPointF(29, 26); | ||||
QChart *chart = new QChart(); | ||||
chart->legend()->hide(); | ||||
chart->addSeries(series); | ||||
//![1] | ||||
//![2] | ||||
// Customize series | ||||
QPen pen(QRgb(0xfdb157)); | ||||
pen.setWidth(5); | ||||
series->setPen(pen); | ||||
// Customize chart title | ||||
QFont font; | ||||
font.setPixelSize(18); | ||||
chart->setTitleFont(font); | ||||
chart->setTitleBrush(QBrush(Qt::white)); | ||||
chart->setTitle("Customchart example"); | ||||
// Customize chart background | ||||
QLinearGradient backgroundGradient; | ||||
backgroundGradient.setStart(QPointF(0, 0)); | ||||
backgroundGradient.setFinalStop(QPointF(0, 1)); | ||||
backgroundGradient.setColorAt(0.0, QRgb(0xd2d0d1)); | ||||
backgroundGradient.setColorAt(1.0, QRgb(0x4c4547)); | ||||
backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode); | ||||
chart->setBackgroundBrush(backgroundGradient); | ||||
// Customize plot area background | ||||
QLinearGradient plotAreaGradient; | ||||
plotAreaGradient.setStart(QPointF(0, 1)); | ||||
plotAreaGradient.setFinalStop(QPointF(1, 0)); | ||||
plotAreaGradient.setColorAt(0.0, QRgb(0x555555)); | ||||
plotAreaGradient.setColorAt(1.0, QRgb(0x55aa55)); | ||||
plotAreaGradient.setCoordinateMode(QGradient::ObjectBoundingMode); | ||||
chart->setPlotAreaBackgroundBrush(plotAreaGradient); | ||||
chart->setPlotAreaBackgroundVisible(true); | ||||
//![2] | ||||
//![3] | ||||
QCategoryAxis *axisX = new QCategoryAxis(); | ||||
QCategoryAxis *axisY = new QCategoryAxis(); | ||||
// Customize axis label font | ||||
QFont labelsFont; | ||||
labelsFont.setPixelSize(12); | ||||
axisX->setLabelsFont(labelsFont); | ||||
axisY->setLabelsFont(labelsFont); | ||||
// Customize axis colors | ||||
QPen axisPen(QRgb(0xd18952)); | ||||
axisPen.setWidth(2); | ||||
axisX->setLinePen(axisPen); | ||||
axisY->setLinePen(axisPen); | ||||
// Customize axis label colors | ||||
QBrush axisBrush(Qt::white); | ||||
axisX->setLabelsBrush(axisBrush); | ||||
axisY->setLabelsBrush(axisBrush); | ||||
// Customize grid lines and shades | ||||
axisX->setGridLineVisible(false); | ||||
axisY->setGridLineVisible(false); | ||||
axisY->setShadesPen(Qt::NoPen); | ||||
axisY->setShadesBrush(QBrush(QColor(0x99, 0xcc, 0xcc, 0x55))); | ||||
axisY->setShadesVisible(true); | ||||
//![3] | ||||
//![4] | ||||
axisX->append("low", 10); | ||||
axisX->append("optimal", 20); | ||||
axisX->append("high", 30); | ||||
axisX->setRange(0, 30); | ||||
axisY->append("slow", 10); | ||||
axisY->append("med", 20); | ||||
axisY->append("fast", 30); | ||||
axisY->setRange(0, 30); | ||||
chart->setAxisX(axisX, series); | ||||
chart->setAxisY(axisY, series); | ||||
//![4] | ||||
//![5] | ||||
QChartView *chartView = new QChartView(chart); | ||||
chartView->setRenderHint(QPainter::Antialiasing); | ||||
//![5] | ||||
//![6] | ||||
QMainWindow window; | ||||
window.setCentralWidget(chartView); | ||||
window.resize(400, 300); | ||||
window.show(); | ||||
//![6] | ||||
return a.exec(); | ||||
} | ||||