3

根据Qt 文档“void QGraphicsItem::update(const QRectF & rect = QRectF())”不会导致立即绘制;相反,它会在控制到达事件循环后安排由 QGraphicsView 处理的绘制请求。这是我的代码:

this->item->setPixmap( QPixmap::fromImage(*coloration->image) );// QGraphicsPixmapItem 
this->item->update();
this->scene->update(); // QGraphicsScene
this->view->update(); // QGraphicsView

并且代码在一个每 100 毫秒调用一次的方法中(并且其中 coloration->image 会改变),但是 Qt 拒绝每 100 毫秒更新一次图像,它只渲染最终图像。那么,我怎样才能立即绘制该项目

4

3 回答 3

0

您必须阻止您的事件循环,否则您对该项目的实施很糟糕。我无法重现您的问题。

于 2013-11-11T22:30:36.457 回答
0

这对我有用:ui->graphicsView->viewport()->repaint();

于 2020-07-31T11:32:08.950 回答
0

添加额外的用法

#include <QGraphicsView> 
QGraphicsView *view = scene()->views().first();
view->viewport()->repaint();
于 2021-08-26T03:50:15.003 回答