main.qml Example File

qmlcustomizations/qml/qmlcustomizations/main.qml
 /****************************************************************************
 **
 ** 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$
 **
 ****************************************************************************/

 import QtQuick 2.0
 import QtCharts 2.0

 Item {
     width: 400
     height: 300
     property int __activeIndex: 1
     property real __intervalCoefficient: 0

     ChartView {
         id: chartView
         anchors.fill: parent
         title: "Wheel of fortune"
         legend.visible: false
         antialiasing: true

         PieSeries {
             id: wheelOfFortune
             horizontalPosition: 0.3
         }

         SplineSeries {
             id: splineSeries
         }

         ScatterSeries {
             id: scatterSeries
         }
     }

     Component.onCompleted: {
         __intervalCoefficient = Math.random() + 0.25;

         for (var i = 0; i < 20; i++)
             wheelOfFortune.append("", 1);

         var interval = 1;
         for (var j = 0; interval < 800; j++) {
             interval = __intervalCoefficient * j * j;
             splineSeries.append(j, interval);
         }
         chartView.axisX(scatterSeries).max = j;
         chartView.axisY(scatterSeries).max = 1000;
     }

     Timer {
         id: timer
         property color switchColor
         triggeredOnStart: true
         running: true
         repeat: true
         interval: 100
         onTriggered: {
             var index = __activeIndex % wheelOfFortune.count;
             if (interval < 700) {
                 wheelOfFortune.at(index).exploded = false;
                 __activeIndex++;
                 index = __activeIndex % wheelOfFortune.count;
                 wheelOfFortune.at(index).exploded = true;
                 interval = splineSeries.at(__activeIndex).y;
                 scatterSeries.clear();
                 scatterSeries.append(__activeIndex, interval);
                 scatterSeries.color = Qt.tint(scatterSeries.color, "#05FF0000");
                 scatterSeries.markerSize += 0.5;
             } else {
                 // Switch the colors of the slice and the border
                 wheelOfFortune.at(index).borderWidth = 2;
                 switchColor = wheelOfFortune.at(index).borderColor;
                 wheelOfFortune.at(index).borderColor = wheelOfFortune.at(index).color;
                 wheelOfFortune.at(index).color = switchColor;
             }
         }
     }
 }