全站高质量IT专业课程选集,一应俱全
download:www.hhdhwc.com
IT人的毁灭者同志会!

1.采用
Qt5.9及以内版;
pro文档中加进QT += charts
.在采用QChart的各命令行以后,要先新闻稿两个重新命名内部空间。如:
QT_CHARTS_USE_NAMESPACE
QT_BEGIN_NAMESPACE
QChart和QChartView的亲密关系:
QChart和QChartView的亲密关系近似于QGraphicsScene和QGraphicsView的亲密关系,QChart这类是用以放置须要展现的命令行的类,而QChartView则是用于人眼识别观察的入口。
所有的更改都是在QChart上发生的,不过更改的结果是通过QChartView来进行展现的
2.效果如下

3.具体实现如下
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
#include
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
QT开发交流+赀料君羊:661714027
mainwindow.cpp
#include “mainwindow.h#include “ui_mainwindow.h#pragma execution_character_set(“utf-8”)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QLineSeries *lineSeries = new QLineSeries(); //创建折线系列
QChartView *chartView = new QChartView(this);
/*为系列里加进100个数据*/
for(quint8 i=0; iappend(i,qrand()%300);
}
lineSeries->setName(“red line”); //设置系列名称
QChart * mChart = new QChart(); //创建图标对象
mChart->addSeries(lineSeries); //向图表中加进系列
mChart->createDefaultAxes(); //创建默认的坐标,要在addSeries之后调用
mChart->setTheme(QChart::ChartThemeDark); //设置图标主题
mChart->setTitle(“qrand”); //设置图标名称
// mChart->legend()->hide(); //隐藏图例,也就是不显示系列名称了
chartView->setChart(mChart); //向chartView中加进图标
chartView->resize(QSize(500,300)); //重新设置chartView的大小
chartView->setRenderHints(QPainter::Antialiasing);//消除边缘,看起来平滑一些
ui->horizontalLayout->addWidget(chartView); //把chartView放到水平布局中(在ui中拖两个水平布局)
}
void MainWindow::on_pushButton_2_clicked()
{
QLineSeries *lineSeries = new QLineSeries(); //创建折线系列
QChartView *chartView = new QChartView(this);
for(quint8 i=0; iappend(i,qrand()%300);
}
lineSeries->setName(“red line”);
QChart * mChart = new QChart();
mChart->addSeries(lineSeries);
//mChart->createDefaultAxes();
QValueAxis *axisX = new QValueAxis;
axisX->setRange(0, 300); //设置坐标轴范围
axisX->setTickCount(5); //主分隔个数
axisX->setMinorTickCount(2);//4
mChart->addAxis(axisX,Qt::AlignLeft ); //坐标轴加进到图表,并指定方向
lineSeries->attachAxis(axisX); //序列 series0 附加坐标轴
QValueAxis *axisY = new QValueAxis;
axisY->setRange( 0, 100);
axisY->setTickCount(10);
axisY->setMinorTickCount(2);//4
mChart->addAxis(axisY,Qt::AlignBottom);
lineSeries->attachAxis(axisY);
mChart->setTheme(QChart::ChartThemeDark);
lineSeries->setColor(Qt::red);
mChart->setTitle(“qrand”);
chartView->setChart(mChart);
chartView->resize(QSize(500,300));
chartView->setRenderHints(QPainter::Antialiasing);
ui->horizontalLayout->addWidget(chartView);
}
QT开发交流+赀料君羊:661714027
4.刷新QChart
//更新系列中的数据 注意:不须要将该系列从图表中移除
lineSeries->clear();
QList list;
int count = cloud.points.size();
std::cout