c++ - 使用 QMathGL 绘制实时数据?

标签 c++ multithreading qt boost mathgl

真的陷入困境,需要一些建议或真实的例子。

1) 我有 boost::thread vector 生成器线程(数据到达速度快~每秒 100 个样本) 2)我希望 QMathGL 在数据到达时绘制数据 3) 我不想让我的 Qt gui 卡住

我尝试将 QMathGL::update() 移动到单独的线程 - Qt 认为 QPixmap 不允许在单独的线程中使用。

在不修改 QMathGL 的情况下我应该尝试什么?

唯一想到的是在计时器上重新绘制(fps?),但我不喜欢这个解决方案,请告诉我我是否错了。

最佳答案

我强烈建议使用计时器。重绘操作的​​成本很高,而且我假设没有用户能够真正每秒处理超过 10 个打印 vector 。因此,除了显示更新得更“平滑”和输入项可能之外,我看不出对最终用户有什么真正的好处。但是您可以通过动画更轻松地实现这些效果;)

当每次数据更改时重新绘制时,您都会遇到您所描述的烦人行为。解决这个问题(恕我直言)不值得这么麻烦。

关于c++ - 使用 QMathGL 绘制实时数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622526/

相关文章:

c++ - 编写 Bash 脚本来计算平均值

c++ - 如何将 QAbstractItemModel 写成格式化文本?

c++ - 将变量与 C++ 中的数据类型进行比较

c++ - 为什么 Malloc() 关心边界对齐?

c++ - OpenGL:使图标旋转的问题

c++ - 线程完成后从 vector 中移除线程

multithreading - 如何告诉 Rust 让我修改隐藏在 RwLock 后面的共享变量?

c++ - std::map 和线程安全的奇怪问题

c++ - 如何将鼠标坐标转换为 "mm"

qt - Qt WebEngine : gpu_process_transport_factory. cc(642) 错误] 切换到软件合成