如何使用QGraphicsPixmapItem应用效果?

时间:2011-09-28 20:19:22

标签: qt

void MainWindow::save()
{
    QGraphicsPixmapItem *gpx = new QGraphicsPixmapItem(QPixmap::fromImage(_im));
    QGraphicsBlurEffect *effect = new QGraphicsBlurEffect;
    effect->setBlurHints(QGraphicsBlurEffect::QualityHint);
    effect->setBlurRadius(20);
    gpx->setGraphicsEffect(effect);
    _gpx = gpx;
    _image_label->setPixmap(gpx->pixmap());
    _image_label->adjustSize();
    MainWindow::repaint();
}

不介意功能名称,它只是一个测试按钮。当我按下它时,我按原样看到图像标签中的图像,没有任何应用。我在Qt中的经验很少,所以我无法理解这里的问题是什么,我怎么能自己调试呢。

1 个答案:

答案 0 :(得分:0)

根据我收集的您编写的代码,您有一个成员变量_gpx,这是您已添加到场景中的QGraphicsPixmapItem。每次调用此函数时,您都会使用一个全新的QGraphicsItem替换(并可能泄漏记忆)该成员变量,而会添加到场景中。

如果您打算更换此项目,则需要执行以下操作:

scene->removeItem( _gpx );

... // (contents of your save() function )

scene->addItem( _gpx );