#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
createChart();
}
Widget::~Widget()
{
delete ui;
}
void Widget::createChart()
{
//创建对象
m_Chart = new QChart;
m_chLoadSerise= new QSplineSeries;
m_chLoadSerise->clear();
m_axisX = new QDateTimeAxis;
m_axisY = new QValueAxis;
//坐标、波形属性设置
QDateTime timeStart=QDateTime::currentDateTime();
QDateTime timeEnd=timeStart.addSecs(1800);
m_Chart->setTitle("温度变化曲线");//坐标系名称
m_axisX->setTitleText("时间");//横坐标名称
m_axisX->setTitleBrush(Qt::white);//横坐标名称字体颜色
m_axisX->setFormat("hh:mm:ss");//横坐标时间格式
m_axisX->setRange(timeStart, timeEnd);//设置横坐标时间范围
m_axisX->setTickCount(10);//设置横坐标格数(间隔)
m_axisY->setTitleText("温度(℃)");//纵坐标名称
m_axisY->setTitleBrush(Qt::white);//纵坐标名称字体颜色
m_axisY->setLabelFormat("%.1f");//纵坐标温度小数位数
m_axisY->setRange(0,25);//纵坐标范围
m_axisY->setTickCount(10);//设置纵坐标格数(间隔)
m_chLoadSerise->setName("温度值");//曲线名称
m_Chart->addSeries(m_chLoadSerise);//曲线加入到坐标
m_Chart->setAxisX(m_axisX, m_chLoadSerise);//横坐标加入曲线
m_Chart->setAxisY(m_axisY, m_chLoadSerise);//纵坐标加入曲线
//m_Chart->setTheme(QChart::ChartThemeDark);//设置坐标背景颜色
m_Chart->setBackgroundVisible(false);//设置坐标系背景透明透明
m_Chart->legend()->setVisible(true);//曲线图例显示
m_Chart->legend()->setAlignment(Qt::AlignBottom);//图例位置
m_Chart->legend()->setLabelColor(Qt::white);//图例颜色
m_Chart->setTitleBrush(Qt::white);//坐标系名称颜色
m_Chart->axisX()->setLabelsColor(Qt::white);//横坐标刻度颜色
m_Chart->axisY()->setLabelsColor(Qt::white);//纵坐标刻度颜色
ui->widget_chartView->setChart(m_Chart);//画布加入到widget控件中(注:在ui界面需将widget提升控件为QChartView)
ui->widget_chartView->setRenderHint(QPainter::Antialiasing);//防止图形走样
m_chLoadSerise->append(timeStart.toMSecsSinceEpoch(),5);
m_chLoadSerise->append(timeStart.addSecs(200).toMSecsSinceEpoch(),5.5);
m_chLoadSerise->append(timeStart.addSecs(500).toMSecsSinceEpoch(),5.6);
m_chLoadSerise->append(timeStart.addSecs(800).toMSecsSinceEpoch(),5.8);
m_chLoadSerise->append(timeStart.addSecs(1200).toMSecsSinceEpoch(),6);
m_chLoadSerise->append(timeStart.addSecs(1500).toMSecsSinceEpoch(),7);
m_chLoadSerise->append(timeStart.addSecs(1700).toMSecsSinceEpoch(),12);
}