在Qt中创建具有高变化频率的“画布”的最有效方法是什么?
目前我有一个主应用程序窗口(QWidget),我在其中创建一个QPixmap并将其设置为QLabel:
QPixmap *canvas = new QPixmap(500, 500);
QLabel *area = new QLabel(this);
area->setPixmap(canvas);
问题是我必须在pixmap上进行每次更改后调用area->setPixmap(canvas);
才能显示它(我相信每秒通常会有几次更改)。这样好吗?或者是否有更好/更快/更有效的解决方案?
答案 0 :(得分:2)
如果要移动项目并更改它们,请使用QGraphicsScene
存储要显示的数据并轻松操作它。使用QGraphicsView
显示结果。
如果您已在其他位置以QPixmap
进行渲染并且只想绘制结果,则使用QWidget
对paintEvent
进行子类化并在QPainter
中绘制它可能是简单。不过,请记得致电update()
!