“GobChartsWidget” is an open source initiative distributed free under the GNU LGPL and is intended for inclusion in Qt applications in need of basic graphical chart display functionality (in short, a free Qt chart widget).
Usage and Documentation
A quick implementation snippet and access to the API documentation is available here.
This video is a recording of the widget in action using my test client. In other words, the log window and table model does NOT form part of the widget (if you really want the test client, however, you are free to have it and can download it separately here). There are also a whole bunch of screenshots if you don’t feel like watching the video.
I started a Qt chart library quite some time ago (called the “GobCharts” library) and through multiple iterations, the project evolved to the point where I realised I was getting more and more involved in the intricacies of charting and less in learning about Qt/C++ and library development (which is what I actually initially set out to do).
I ultimately decided to wrap what I had in an end-user widget for use in Qt applications and distribute it “as is”. Although not a comprehensive chart widget/library, I’m hoping that some of you may find it useful.
Two of the limitations of the widget is directly attributable to the decision to halt further development:
- Grid lines are of a purely cosmetic nature and have no bearing on data values whatsoever and
- The data model you use must contain your data categories in the first column and the corresponding values in the second.
The other notable limitations are due to design considerations:
- GobChartsWidget can only handle one-to-one mappings of categories to data, i.e. you cannot draw charts with data values spanning multiple columns.
- All negative numbers are automatically rounded up to zero.
The reason for this is that pie charts do not lend themselves to the display of multiple data sets per category, nor to the display of negative numbers so I decided to exclude these possibilities altogether in favour of a design allowing for greater flexibility at run-time and fewer complications with regards to the implementation.