zoukankan      html  css  js  c++  java
  • QT与ECharts交互,绘制曲线图

    我使用的是QWebengineView,在pro文件内添加:

      

    QT       += webenginewidgets
    

      然后在设计窗口添加一个widget控件提升为QWebengineView:

    .cpp 代码如下:

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QDebug>
    #include <QJsonArray>
    #include <QJsonDocument>
    #include <QByteArray>
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        ui->widget->load(QUrl("file:///" + qApp->applicationDirPath()+"/html/line.html"));
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    
    void MainWindow::on_pushButton_clicked()
    {
        QStringList list_Date;
        QStringList list_PD;
        QStringList list_QX;
        QStringList list_DK;
        QStringList list_ZJ;
        QStringList list_CF;
    
        QJsonArray num_josn;
        QJsonArray num_josnPD;
        QJsonArray num_josnQX;
        QJsonArray num_josnDK;
        QJsonArray num_josnZJ;
        QJsonArray num_josnCF;
    
        QJsonDocument num_document;
        QJsonDocument num_documentPD;
        QJsonDocument num_documentQX;
        QJsonDocument num_documentDK;
        QJsonDocument num_documentZJ;
        QJsonDocument num_documentCF;
    
        QByteArray num_byteArray;
        QByteArray num_byteArrayPD;
        QByteArray num_byteArrayQX;
        QByteArray num_byteArrayDK;
        QByteArray num_byteArrayZJ;
        QByteArray num_byteArrayCF;
    
        QDateTime tim = QDateTime::currentDateTime();
    
        QString aa = tim.toString("yyyy-MM-dd");
        QString aa_2 = tim.addDays(-1).toString("yyyy-MM-dd");
        QString aa_3 = tim.addDays(-2).toString("yyyy-MM-dd");
        QString aa_4 = tim.addDays(-3).toString("yyyy-MM-dd");
        QString aa_5 = tim.addDays(-4).toString("yyyy-MM-dd");
        QString aa_6 = tim.addDays(-5).toString("yyyy-MM-dd");
        QString aa_7 = tim.addDays(-6).toString("yyyy-MM-dd");
        QString aa_8 = tim.addDays(-7).toString("yyyy-MM-dd");
    
        QDateTime timeDate;
        timeDate = QDateTime::fromString(aa,"yyyy-MM-dd");
        int time_Int = timeDate.toTime_t();
    
        QDateTime timeDate_2;
        timeDate_2 = QDateTime::fromString(aa_2,"yyyy-MM-dd");
        int time_Int_2 = timeDate_2.toTime_t();
    
        QDateTime timeDate_3;
        timeDate_3 = QDateTime::fromString(aa_3,"yyyy-MM-dd");
        int time_Int_3 = timeDate_3.toTime_t();
    
        QDateTime timeDate_4;
        timeDate_4 = QDateTime::fromString(aa_4,"yyyy-MM-dd");
        int time_Int_4 = timeDate_4.toTime_t();
    
        QDateTime timeDate_5;
        timeDate_5 = QDateTime::fromString(aa_5,"yyyy-MM-dd");
        int time_Int_5 = timeDate_5.toTime_t();
    
        QDateTime timeDate_6;
        timeDate_6 = QDateTime::fromString(aa_6,"yyyy-MM-dd");
        int time_Int_6 = timeDate_6.toTime_t();
    
        QDateTime timeDate_7;
        timeDate_7 = QDateTime::fromString(aa_7,"yyyy-MM-dd");
        int time_Int_7 = timeDate_7.toTime_t();
    
        QDateTime timeDate_8;
        timeDate_8 = QDateTime::fromString(aa_8,"yyyy-MM-dd");
        int time_Int_8 = timeDate_8.toTime_t();
    
        QString time_List = QString::number(time_Int);
        QString time_List_2 = QString::number(time_Int_2);
        QString time_List_3 = QString::number(time_Int_3);
        QString time_List_4 = QString::number(time_Int_4);
        QString time_List_5 = QString::number(time_Int_5);
        QString time_List_6 = QString::number(time_Int_6);
        QString time_List_7 = QString::number(time_Int_7);
        QString time_List_8 = QString::number(time_Int_8);
    
        list_Date << time_List_8<<time_List_7<< time_List_6<<time_List_5
                  << time_List_4<<time_List_3<< time_List_2<<time_List;
    
        list_PD   << "5"<<"8"<<"10"<<"12"<<"2"<<"9"<<"20"<<"5";
        list_QX   << "10"<<"3"<<"15"<<"22"<<"5"<<"8"<<"12"<<"8";
        list_DK   << "20"<<"5"<<"1"<<"1"<<"12"<<"3"<<"10"<<"3";
        list_ZJ   << "12"<<"11"<<"2"<<"3"<<"19"<<"4"<<"15"<<"8";
        list_CF   << "2"<<"17"<<"13"<<"8"<<"14"<<"11"<<"1"<<"7";
    
        if(list_Date.size() <= 10)
        {
            for(int i=0;i<list_Date.size();i++)
            {
                num_josn.append(list_Date.at(i).toDouble());
                num_josnPD.append(list_PD.at(i).toDouble());
                num_josnQX.append(list_QX.at(i).toDouble());
                num_josnDK.append(list_DK.at(i).toDouble());
                num_josnZJ.append(list_ZJ.at(i).toDouble());
                num_josnCF.append(list_CF.at(i).toDouble());
            }
        }
        else if(list_Date.size() > 10)
        {
            for(int i=list_Date.size()-10;i<list_Date.size();i++)
            {
                num_josn.append(list_Date.at(i).toDouble());
                num_josnPD.append(list_PD.at(i).toDouble());
                num_josnQX.append(list_QX.at(i).toDouble());
                num_josnDK.append(list_DK.at(i).toDouble());
                num_josnZJ.append(list_ZJ.at(i).toDouble());
                num_josnCF.append(list_CF.at(i).toDouble());
            }
        }
    
        num_document.setArray(num_josn);
        num_documentPD.setArray(num_josnPD);
        num_documentQX.setArray(num_josnQX);
        num_documentDK.setArray(num_josnDK);
        num_documentZJ.setArray(num_josnZJ);
        num_documentCF.setArray(num_josnCF);
    
        num_byteArray = num_document.toJson(QJsonDocument::Compact);
        num_byteArrayPD = num_documentPD.toJson(QJsonDocument::Compact);
        num_byteArrayQX = num_documentQX.toJson(QJsonDocument::Compact);
        num_byteArrayDK = num_documentDK.toJson(QJsonDocument::Compact);
        num_byteArrayZJ = num_documentZJ.toJson(QJsonDocument::Compact);
        num_byteArrayCF = num_documentCF.toJson(QJsonDocument::Compact);
    
        QString numJos(num_byteArray);
        QString numJosPD(num_byteArrayPD);
        QString numJosQX(num_byteArrayQX);
        QString numJosDK(num_byteArrayDK);
        QString numJosZJ(num_byteArrayZJ);
        QString numJosCF(num_byteArrayCF);
    
        QString command = QString("addX("%1")").arg(numJos);
        QString commandPD = QString("addPD("%1")").arg(numJosPD);
        QString commandQX = QString("addQX("%1")").arg(numJosQX);
        QString commandDK = QString("addDC("%1")").arg(numJosDK);
        QString commandZJ = QString("addZJ("%1")").arg(numJosZJ);
        QString commandCF = QString("addCF("%1")").arg(numJosCF);
    
        ui->widget->page()->runJavaScript(command);
        ui->widget->page()->runJavaScript(commandPD);
        ui->widget->page()->runJavaScript(commandQX);
        ui->widget->page()->runJavaScript(commandDK);
        ui->widget->page()->runJavaScript(commandZJ);
        ui->widget->page()->runJavaScript(commandCF);
    }
    

      运行如图:

    源码下载链接:    

    链接:https://pan.baidu.com/s/1O4kQUn53-hhjdylqJJqrNA
    提取码:0810

    个人感觉echarts图形会美观很多。

     
  • 相关阅读:
    Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别
    用foreach遍历 datagridView 指定列所有的内容
    treeView1.SelectedNode.Level
    YES NO 上一个 下一个
    正则 单词全字匹配查找 reg 边界查找 精确匹配 只匹配字符 不含连续的字符
    抓取2个字符串中间的字符串
    sqlite 60000行 插入到数据库只用不到2秒
    将多行文本以单行的格式保存起来 读和写 ini
    将秒转换成时间格式
    richtextbox Ctrl+V只粘贴纯文本格式
  • 原文地址:https://www.cnblogs.com/ruandahua/p/13565341.html
Copyright © 2011-2022 走看看