我必须根据某些条件对 QPushButton
应用阴影效果。如果某些条件为假,我必须删除阴影效果,如果条件为真,则再次添加它。我正在尝试使用以下代码,但程序崩溃了。
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
这段代码有什么问题?有没有其他方法可以做到?
最佳答案
您可以在 Qt 文档中阅读有关 setGraphicsEffect
的内容:
所以当这条线运行时:
ui->btnAdd->setGraphicsEffect(NULL); //remove effect
effect
实际上被删除了。因此,每次要设置效果时,都应该创建一个新的效果实例。关于c++ - 多次应用 QGraphicsDropShadowEffect 会导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27936950/