可更换Qt画布的最佳方式

时间:2016-07-08 15:32:21

标签: c++ qt

在Qt中创建具有高变化频率的“画布”的最有效方法是什么?

目前我有一个主应用程序窗口(QWidget),我在其中创建一个QPixmap并将其设置为QLabel:

QPixmap *canvas = new QPixmap(500, 500);
QLabel *area = new QLabel(this);
area->setPixmap(canvas);

问题是我必须在pixmap上进行每次更改后调用area->setPixmap(canvas);才能显示它(我相信每秒通常会有几次更改)。这样好吗?或者是否有更好/更快/更有效的解决方案?

1 个答案:

答案 0 :(得分:2)

彼得和杰里米都有很好的解决方案。哪一个最好取决于您的需求。

如果要移动项目并更改它们,请使用QGraphicsScene存储要显示的数据并轻松操作它。使用QGraphicsView显示结果。

如果您已在其他位置以QPixmap进行渲染并且只想绘制结果,则使用QWidgetpaintEvent进行子类化并在QPainter中绘制它可能是简单。不过,请记得致电update()