c – 可更换Qt画布的最佳方式

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

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

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

问题是我必须调用area-> setPixmap(canvas);在我对像素图进行的每次更改之后都可以显示它(我在计算通常会每秒进行几次更改).这样好吗?或者是否有更好/更快/更有效的解决方案?

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

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

如果你已经在QPixmap的其他地方进行渲染并且只想绘制结果,那么继承QWidget并使用QPainter在paintEvent中绘制它可能会更简单.但请记住调用update()!

点赞