我必须根据某些条件对QPushButton
应用阴影效果。我必须删除阴影效果,如果某些条件为false并再次添加,如果条件变为true。我试图使用以下代码,但程序崩溃。
QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect();
effect->setBlurRadius(1);
effect->setOffset(2,2);
ui->btnAdd->setGraphicsEffect(effect);
ui->btnAdd->setGraphicsEffect(NULL); //remove effect
ui->btnAdd->setGraphicsEffect(effect); //add again
这段代码有什么问题?还有其他方法吗?
答案 0 :(得分:1)
您可以在Qt文档中阅读setGraphicsEffect
:
将效果设置为小部件的效果。如果已经有效果 安装在这个小部件上,QWidget将删除现有的效果 在安装新效果之前。
所以当这一行运行时:
ui->btnAdd->setGraphicsEffect(NULL); //remove effect
effect
实际上已被删除。因此,每次要设置效果时都应该创建一个新的效果实例。