learn_qt_qchart_plot_newdisplay.zip

时间:2023-08-12 14:50:19
【文件属性】:

文件名称:learn_qt_qchart_plot_newdisplay.zip

文件大小:3.09MB

文件格式:ZIP

更新时间:2023-08-12 14:50:19

qt qchart

在使用Qt进行窗口显示的过程中,我们可能需要在新窗口中展示绘图结果。本文章在前文章实现动态曲线展示的基础上,改进为新窗口实时绘制。具体[Qt]利用QChart实现实时动态的曲线数据展示可参考这里: https://blog.csdn.net/weixin_43487953/article/details/107409852 简单效果如图: 首先添加新的Qt设计师界面类 最终可得到如下界面: 在你需要的ui中添加绘图所需控件 利用widget升级为QChartView,显示图像 在主.h中 private: //新窗口 Display *m; signals: void send_list(QVector line); 在主.cpp中 m = new Display; connect(this,SIGNAL(send_list(QVector)),m,SLOT(receive_list(QVector))); 在新生成的数据进行发送: emit send_list(newlist); 例如: void MainWindow::updata_plot() { QVector list; QVector newlist; list = line->pointsVector();//获取现在图中列表 if (list.size() < line_max) { //保持原来 newlist = list; } else { //错位移动 for(int i =1 ; i< list.size();i++) { newlist.append(QPointF(i-1,list.at(i).y())); } } newlist.append(QPointF(newlist.size(),rand()));//最后补上新的数据 emit send_list(newlist); } 在子.h中 //QChart #include using namespace QtCharts; private: //曲线 QSplineSeries* line; //绘图变量和坐标 QChart* chart; //发来数据的接收槽函数 private slots: void receive_list(QVector list); 在子.cpp中 line = new QSplineSeries(this); chart = new QChart(); chart->addSeries(line); //接收槽函数并进行绘制 void Display::receive_list(QVector list) { line->replace(list);//替换更新 line->setName("pressure");//设置曲线名称 line->setPen(QColor(255, 0, 0));//设置曲线颜色 line->setUseOpenGL(true);//openGl 加速 chart->setTitle("Pressure Data");//设置图标标题 chart->removeSeries(line); chart->addSeries(line); chart->createDefaultAxes();//设置坐标轴 ui->widget->setChart(chart); }


【文件预览】:
learn_qt_qchart_plot2
----main.cpp(183B)
----display.ui(781B)
----mainwindow.h(952B)
----display.h(503B)
----learn_qt_qchart_plot.pro.user(22KB)
----display.cpp(768B)
----mainwindow.cpp(2KB)
----mainwindow.ui(2KB)
----learn_qt_qchart_plot.pro(1KB)
20200722_202113.mp4

网友评论