c++ - Qt中不能同时绘制多个对象吗?

标签 c++ qt paint

  • 我在 Qt 文档中阅读了以下内容。

Qt documentation on QPainter

The original question on SO, that I looked into.

  • 所以,我有两个类,它们有自己的 paint() 函数。绘画函数将在接收到它们各自的绘画事件时被调用,这些事件是由用户在不同和独立的 Action 上触发的。这很好用。

    • 现在由于某些原因,我需要同时显示和更新这两个对象。
    • 很简单,将这两个项目都添加到场景中是行不通的。仅显示和更新其中之一。重构代码对我来说不是问题。我可以重新安排这两个类,以便它们都从一个 paint() 中绘制。

但这真的让我想知道,这是我的问题(我也用谷歌搜索了一下),然后如何同时绘制具有数十个对象的场景(至少它们给人一种并发的错觉)?以某种方式或通过一些基于时间的交错使用线程?

也许这是个愚蠢的问题。我不知道。

最佳答案

关于一个现实中不存在的想象中的问题,确实是个傻问题。图形 View 将按照产生所需结果所需的顺序安排项目的连续绘制。现在,如果您的代码没有实现预期的结果,那就完全是另一回事了。没有并发,那些是只发生在主线程中的连续操作。

如果您的绘图非常复杂,请在 QImage 上使用辅助线程进行绘图,并使用 QImage 作为缓存以在各自的绘图函数中绘制您的项目。

Now for some reason, I need to show and update both the objects at the same time.

这可能是什么原因? “同时”是什么意思?在单帧中?相差一毫秒是否符合“同时”的条件?

关于c++ - Qt中不能同时绘制多个对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35943353/

相关文章:

Java 的 System.exit(0); vs C++ 返回 0;

javascript - boost::asio 是否支持 websockets?

linux - Qmake - 不在 Linux 中复制文件

c++ - boost::any_cast<double>(any&) 可以 boost 吗?

c++ - C++在子目录中搜索文件,而父目录路径包含通配符 '.'

c++ - 如何保证共享库在 Linux 发行版之间可移植?

c++ - Qt Gridlayout 不重新对齐 GUI 元素

安卓自定义画笔

java - JApplet 不显示绘制或绘制方法

java - 在没有main方法的情况下,paint方法如何运行?