- 我在 Qt 文档中阅读了以下内容。
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/