#include "dynamichistogramwidget.h" #include "ui_dynamichistogramwidget.h" QVectordata0; QVectordata1; QVectordata2; QVectordata3; using namespace QtCharts; DynamicHistogramWidget::DynamicHistogramWidget(QWidget *parent) : QWidget(parent), ui(new Ui::DynamicHistogramWidget) { ui->setupUi(this); for (int i = 0; i < 7; ++i) { data0.push_front(0); data1.push_front(0); data2.push_front(0); data3.push_front(0); } connect(ui->createBtn,&QPushButton::clicked,[=](){ data0.push_front(ui->line1->text().toInt()); data1.push_front(ui->line2->text().toInt()); data2.push_front(ui->line3->text().toInt()); data3.push_front(ui->line4->text().toInt()); QBarSet *set0 = new QBarSet("日光(min)"); QBarSet *set1 = new QBarSet("UV(min)"); QBarSet *set2 = new QBarSet("日光(month)"); QBarSet *set3 = new QBarSet("UV(month)"); QVector::iterator it1 = data0.begin(); QVector::iterator it2 = data1.begin(); QVector::iterator it3 = data2.begin(); qDebug()<::iterator it4 = data3.begin();it4append(set0); series->append(set1); series->append(set2); series->append(set3); QChart *c = new QChart(); c->setTitle("光照UV强度"); c->addSeries(series); ui->graphicsView->setChart(c); c->legend()->setVisible(true); c->setAnimationOptions(QChart::SeriesAnimations); ui->graphicsView->setRenderHint(QPainter::Antialiasing); c->createDefaultAxes();//创建默认的左侧的坐标轴(根据 QBarSet 设置的值) QValueAxis *axisX = new QValueAxis();//轴变量、数据系列变量,都不能声明为局部临时变量 QValueAxis *axisY = new QValueAxis();//创建X/Y轴 axisX->setRange(0, 7); axisY->setRange(0, 10);//设置X/Y显示的区间 // c->setAxisX(axisX); // c->setAxisY(axisY);//设置chart的坐标轴 // series->attachAxis(axisX); c->addAxis(axisX,Qt::AlignBottom); // c->addAxis(axisY,Qt::AlignLeft); series->attachAxis(axisX); // series->attachAxis(axisY); c->legend()->setVisible(true); //设置图例为显示状态 c->legend()->setAlignment(Qt::AlignBottom);//设置图例的显示位置在底部 }); } DynamicHistogramWidget::~DynamicHistogramWidget() { delete ui; }