12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include "memorywidget.h"
- #include <QtCharts/QAreaSeries>
- #include <QPen>
- #include <QLinearGradient>
- #include <QDebug>
- #include "sysinfo.h"
- using namespace QtCharts;
- const int CHART_X_RANGE_COUNT = 50;
- const int CHART_X_RANGE_MAX = CHART_X_RANGE_COUNT - 1;
- const int COLOR_DARK_BLUE = 0x209fdf;
- const int COLOR_LIGHT_BLUE = 0xbfdfef;
- const int PEN_WIDTH = 3;
- MemoryWidget::MemoryWidget(QWidget *parent) :
- #ifdef __arm__
- SysInfoWidget(parent, 1200, 3000),
- #else
- SysInfoWidget(parent, 1200, 1000),
- #endif
- mSeries(new QLineSeries(this)),
- mPointPositionX(0)
- {
- QPen pen(COLOR_DARK_BLUE);
- pen.setWidth(PEN_WIDTH);
- QLinearGradient gradient(QPointF(0, 0), QPointF(0, 1));
- gradient.setColorAt(1.0, COLOR_DARK_BLUE);
- gradient.setColorAt(0.0, COLOR_LIGHT_BLUE);
- gradient.setCoordinateMode(QGradient::ObjectBoundingMode);
- QAreaSeries* areaSeries = new QAreaSeries(mSeries);
- areaSeries->setPen(pen);
- areaSeries->setBrush(gradient);
- QChart* chart = chartView().chart();
- chart->addSeries(areaSeries);
- chart->setTitle("Memory used");
- chart->createDefaultAxes();
- chart->axisX()->setRange(0, CHART_X_RANGE_MAX);
- chart->axisX()->setVisible(false);
- chart->axisY()->setRange(0, 100);
- }
- void MemoryWidget::updateSeries()
- {
- double memoryUsed = SysInfo::instance().memoryUsed();
- //qDebug() << memoryUsed << endl;
- mSeries->append(mPointPositionX++, memoryUsed);
- if (mSeries->count() > CHART_X_RANGE_COUNT) {
- QChart* chart = chartView().chart();
- chart->scroll(chart->plotArea().width() / CHART_X_RANGE_MAX, 0);
- mSeries->remove(0);
- }
- }
|