在 Qt 中创建变化频率高的“ Canvas ”的最有效方法是什么?
目前我有一个主应用程序窗口 (QWidget),我在其中创建了一个 QPixmap 并将其设置为 QLabel:
QPixmap *canvas = new QPixmap(500, 500);
QLabel *area = new QLabel(this);
area->setPixmap(canvas);
问题是我必须在每次对像素图进行更改后调用 area->setPixmap(canvas);
才能显示它(我计算通常会有几个每秒变化)。这样可以吗?或者是否有更好/更快/更高效的解决方案?
最佳答案
PeterT 和 Jeremy 都有很好的解决方案。哪一个最好取决于您的需求。
如果您四处移动项目并更改它们,请使用 QGraphicsScene
来存储您想要显示的数据并轻松地对其进行操作。使用 QGraphicsView
显示结果。
如果您已经在别处将渲染作为 QPixmap
进行,并且只想绘制结果,子类化 QWidget
并在 paintEvent
中绘制它> 使用 QPainter
可能更简单。不过记得调用 update()
!
关于c++ - 可变Qt Canvas 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38270459/