This example demonstrates the basic steps in creating a vertical linear meter.
A vertical linear meter can be created using the following steps:
- Create a LinearMeter object using LinearMeter.LinearMeter, optionally specify the background and border colors and whether to use rounded and/or thick frames..
- Specify the size of the meter scale and the orientation of the scale labels using LinearMeter.setMeter. In this example, the scale labels are positioned at the left of the meter scale. This automatically implies the meter as vertical.
- Set the numeric scale of the meter using BaseMeter.setScale.
- Optionally add a color scale to the meter using BaseMeter.addColorScale. Whereas the meter scale displays the values with text labels, a color scale represents the values with different colors.
- Add a pointer to the meter using BaseMeter.addPointer.
The following is the command line version of the code in "cppdemo/vlinearmeter". The MFC version of the code is in "mfcdemo/mfcdemo". The Qt Widgets version of the code is in "qtdemo/qtdemo". The QML/Qt Quick version of the code is in "qmldemo/qmldemo".
#include "chartdir.h"
int main(int argc, char *argv[])
{
// The value to display on the meter
double value = 74.35;
// Create an LinearMeter object of size 70 x 240 pixels with a very light grey (0xeeeeee)
// background, and a rounded 3-pixel thick light grey (0xcccccc) border
LinearMeter* m = new LinearMeter(70, 240, 0xeeeeee, 0xcccccc);
m->setRoundedFrame(Chart::Transparent);
m->setThickFrame(3);
// Set the scale region top-left corner at (28, 18), with size of 20 x 205 pixels. The scale
// labels are located on the left (default - implies vertical meter).
m->setMeter(28, 18, 20, 205);
// Set meter scale from 0 - 100, with a tick every 10 units
m->setScale(0, 100, 10);
// Add a smooth color scale to the meter
double smoothColorScale[] = {0, 0x6666ff, 25, 0x00bbbb, 50, 0x00ff00, 75, 0xffff00, 100,
0xff0000};
const int smoothColorScale_size = (int)(sizeof(smoothColorScale)/sizeof(*smoothColorScale));
m->addColorScale(DoubleArray(smoothColorScale, smoothColorScale_size));
// Add a blue (0x0000cc) pointer at the specified value
m->addPointer(value, 0x0000cc);
// Output the chart
m->makeChart("vlinearmeter.png");
//free up resources
delete m;
return 0;
}
© 2023 Advanced Software Engineering Limited. All rights reserved.