c – 从工作线程更新QtCharts的正确方法?

c – 从工作线程更新QtCharts的正确方法?,第1张

概述因为这是我的第一个问题,我想说StackOverflow帮了我无数次.谢谢. 现在我的问题.我目前正在尝试在Qt 5.8中实现一个简单的数据采集应用程序.该应用程序必须与DSP通信并以100Hz至10kHz的速率获取一些电压.由于我需要对获得的电压做一些额外的计算,我认为在与GUI线程不同的线程中进行数据采集和 *** 作是个好主意. 数据采集​​和附加计算在单独的线程中工作得很好.我的问题是,使用QtC 因为这是我的第一个问题,我想说StackOverflow帮了我无数次.谢谢.

现在我的问题.我目前正在尝试在Qt 5.8中实现一个简单的数据采集应用程序.该应用程序必须与DSP通信并以100Hz至10kHz的速率获取一些电压.由于我需要对获得的电压做一些额外的计算,我认为在与GUI线程不同的线程中进行数据采集和 *** 作是个好主意.

数据采集​​和附加计算在单独的线程中工作得很好.我的问题是,使用QtCharts异步显示工作线程结果的正确方法是什么?

任何建议都将深表感谢.

最好的祝福,

T.Krastev

@R_301_6120@ 有类似的问题.
我有一个线程将数据加载到Model.在finshed之后我让线程发出信号DataLoadingDone.这通过Qt :: QueuedConnection连接到MainWindow中的一个插槽,因此它从GuiThread进行评估.否则我遇到QbarSet插槽抛出异常的问题.

MainWindow::MainWindow() {  this->chart = new QChart();  this->chartVIEw = new QChartVIEw(chart);  this->serIEs = new QbarSerIEs();  this->mapper = new QHbarmodelmapper(this);  this->connect(this->myThread,SIGNAL(DataLoadingDone()),this,SLOT(MyThread_DataLoadingDone()),Qt::QueuedConnection);  this->setWidget(this->chartVIEw);}voID MainWindow::MyThread_DataLoadingDone() {  mapper->setFirstbarSetRow(0);  mapper->setLastbarSetRow(0);  mapper->setFirstColumn(0);  mapper->setColumnCount(this->model->columnCount());  mapper->setSerIEs(serIEs);  mapper->setModel(this->model);  //only add at the first time  //if we add this every time something goes wrong and   // multiple bars are displayed behind each other  if (this->chart->serIEs().count() == 0) {    this->chart->addSerIEs(serIEs);    this->chart->createDefaultAxes();  }}
总结

以上是内存溢出为你收集整理的c – 从工作线程更新QtCharts的正确方法?全部内容,希望文章能够帮你解决c – 从工作线程更新QtCharts的正确方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1225032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存