Titta Heikkala

Qt Charts 2.1.0 Release

Published Monday January 18th, 2016
23 Comments on Qt Charts 2.1.0 Release
Posted in Charts, Dev Loop, Releases

We’re happy to announce that the upcoming Qt 5.6.0 release includes Qt Charts 2.1.0 add-on. This Qt Charts release contains new features and bug fixes based on customer requests.

A short introduction of the module to those of you new to it: Qt Charts is a module that provides a set of easy to use chart components. Different chart types that are available: Line, Spline, Area, Scatter, Bar, Pie, Polar and Box-and-Whiskers Chart.

examples_chartthemes_light

Example of some chart types available

More information, including examples of Qt Charts usage, can be found from the documentation.

As announced recently, the Qt Add-ons licensing will be changed so that the Qt Charts module becomes available under both GPLv3 and commercial license terms. The source code for the module has already been pushed to codereview.qt-project.org. With Qt 5.7 release the packages will include a pre-built version of the module and the version numbering for Qt Charts will then be changed so that it follows the Qt versioning.

Performance improvement

The biggest visible improvement done to Qt Charts 2.1.0 is a performance related change. For line and scatter series we’ve added support of accelerated drawing with OpenGL. The change radically improves performance in cases involving large data sets. We’ve added the OpenGL Accelerated Series Example to show how you can enable OpenGL acceleration for QLineSeries and QScatterSeries.

examples_openglseries

Large data set shown in the OpenGL Accelerated Series Example

New features and functionality in Qt Charts 2.1.0

  • Reverse axis support
  • Possibility to set labels position for QCategory Axis
  • Support for minor ticks to value axis
  • Support for bar series value label angle
  • Points can be replaced and get as a QVector with QXYSeries
  • Duration and easing curve can be set for chart animation
  • Labels clipping can be enabled and disabled
  • Possibility to remove more than one point from QXYSeries
  • Color of the grid can be set with axis
  • mapToPosition and mapToValue methods to ChartView
  • Zooming functions to ChartView to correspond the ones available for QChart
  • Changed signals to scatter series marker size and shape properties

In addition to the above changes there are also several fixes done based on customer reports. For detailed list of changes please see the dist/changes-2.1.0 file included in the source package of Qt Charts.

Qt Charts 2.1.0 is already included as a source package in Qt 5.6 Beta. The final Qt 5.6 release will also include the binaries for this add-on. In Qt 5.6 release the module binaries will still be available only with the commercial packages. Open source users can build the module from the sources. As always, Qt Charts is fully covered by our standard support. Should you have any issues using the module or in case you want to share your ideas for further development, please contact our support team through the Qt Account Support Center.

Do you like this? Share it
Print this pageEmail this to someoneShare on LinkedInShare on Google+Share on FacebookTweet about this on Twitter

Posted in Charts, Dev Loop, Releases

23 comments

Philip S says:

Does the OpenGL Accelerated Series work with charts displayed in QML?

Titta Heikkala Titta Heikkala says:

Yes, OpenGL can be used also with charts in QML applications. You can find more details about this in the documentation: https://doc-snapshots.qt.io/qtcharts/qml-qtcharts-abstractseries.html#useOpenGL-prop

Efe says:

Amazing! Qt rocks! #QtTillTheDeathOfMe

Johannes Lochmann says:

really great news!

Firat says:

Is there any way to improve visual quality? It is really blurry on retina devices (iOS, OSX) and even on android.

Titta Heikkala Titta Heikkala says:

The way charts is rendered with QML applications has been changed to Qt Charts 2.1.0 and it should no longer be blurry. In case the problem persists, please contact our support team (https://account.qt.io/support) or create a bug report of the issue (https://bugreports.qt.io).

Firat says:

Thanks! That was really needed. :)

Alan says:

Thanks a lot for this. One very simple question: is there a way to quickly (and simply) test Qt Charts or should we just wait for Qt 5.6 to be released?

Titta Heikkala Titta Heikkala says:

Qt Charts 2.1.0 requires Qt 5.4 or newer so you can test it with an older Qt version (than 5.6) too. Qt 5.6 Beta package, http://download.qt.io/development_releases/qt/5.6/5.6.0-beta/, contains the source for charts which you can use for testing or pull the code from codereview. Unfortunately, binary packages are not available yet for Qt Charts 2.1.0.

Alan says:

Thanks Titta, but I have just noticed that Qt Charts is released under GPL v3.0 (and a commercial license) and, unfortunately for me, my project is released under Apache v2.0, so it looks like it might be a no-go for me. :(

Jakub says:

I’m using ChartJS and works like a charm 😉 and it’s under MIT

http://jwintz.me/blog/2014/02/15/qchart-dot-js-qml-binding-for-chart-dot-js/

Alan says:

Thanks, I knew about Chart.js, but not about QChart.js. This being said, I don’t use QML, but ‘plain’ Qt/C++ and I need (very) fast plotting with potentially thousands of lines. So, I am not sure (Q)Chart.js is right for me. (I am currently using QwtPlot, but I wouldn’t mind something that looks ‘nicer’.)

Jakub says:

You can always put QChart.js inside QQuickWidget, add properties for data binding, connect them inside C++ and use QChart.js as the regular QWidget. The only disadvantage is that You need to link and distribute with additional,QML libraries.

I was using QChart.js for data sets with <1000 records so I can't tell how it will work for larger data, but it is worth to try.

Alan says:

True, I might give it a try as a quick side project.

Scott Brady says:

Will Qt Charts also be available under the LGPL licence in addition to the GPL?

@Scott: License options for Qt Charts are GPL and commercial.

Scott says:

So basically if you are selling your product with an LGPL licence you cannot use QtCharts. Is that correct?

Scott says:

@Tuukka Apologies, just saw posts above mine. Looks like for my circumstances I’ll use Chart.js for the same reason that Alan does.

Kind Regards

Alan says:

It’s Jakub who is apparently using Chart.js (through QChart.js). Personally, I am using QwtPlot.

I am not sure QChart.js would be fast enough for my needs, which is the reason I was looking forward to using Qt Charts, but sadly it’s released under GPL v3.0. I really wonder why it doesn’t have the same licensing as Qt itself, i.e. L/GPL v2.1/v3.0. It would make things so much easier…

Tham says:

>I really wonder why it doesn’t have the same licensing as Qt itself

The most obvious reason is money, if licensing it as LGPL, there will be less users like to spend money on commercial license. Although it may not suit for commercial products, we could use it to develop open source products.

Scott Brady says:

As I cannot afford a full commercial licence. The exclusion of charts from the lgpl licence is a game changer for me. It just means that I have to search for other solutions or alternatively other products to fulfill the requirments of my customers.

Adam says:

We’ve been using a 2D-only, third-party plotting package for our software, but would prefer to use something officially developed/supported by Qt (QtCharts and QtDataVisualization). Unfortunately, I’m not yet certain it would work for our needs since I haven’t been able to find any documentation about supporting error/uncertainty data. Is this a feature we’d need to develop ourselves by extending existing types (e.g., QLineSeries) to support it, or have I just missed something?

Titta Heikkala Titta Heikkala says:

For showing 2D data Qt Charts would be the choice. Qt Data Visualization is for 3D data visualization.
It’s difficult to say based on your description if e.g. QLineSeries is the type you could use. But if line chart is the chart type you wish to display the error/uncertainty data then most of the time there’s no need to extend the existing type, instead it’s sufficient to sett certain properties.
Please contact our support team (https://account.qt.io/support) to get more information on this.

Commenting closed.

Get started today with Qt Download now