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中的经验很少,所以我无法理解这里的问题是什么,我怎么能自己调试呢。
答案 0 :(得分:0)
根据我收集的您编写的代码,您有一个成员变量_gpx
,这是您已添加到场景中的QGraphicsPixmapItem
。每次调用此函数时,您都会使用一个全新的QGraphicsItem替换(并可能泄漏记忆)该成员变量,而不会添加到场景中。
如果您打算更换此项目,则需要执行以下操作:
scene->removeItem( _gpx );
... // (contents of your save() function )
scene->addItem( _gpx );