移除事件中的阴影

2024-09-26 22:50:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想删除leaveEvent中的阴影效果。这是我的密码:

class GroupBox(QGroupBox):
    def __init__(self, parent=None, shadow=True):
        super(GroupBox, self).__init__(parent)
        self.isShadow = shadow

        if self.isShadow == True:
            self.shadow = QGraphicsDropShadowEffect()
        elif self.isShadow == False:
            self.shadow = None

       

    def enterEvent(self, event):
        if self.shadow != None:  
            self.shadow.setBlurRadius(10)
            self.shadow.setOffset(0, 0) 
            self.setGraphicsEffect(self.shadow)


    def leaveEvent(self, event):
        self.shadow = None

有没有关于如何解决这个问题的建议


Tags: selfnoneeventtrue密码ifinitdef
1条回答
网友
1楼 · 发布于 2024-09-26 22:50:15

如果要删除QGraphicsEffect,则必须将None传递给setGraphicsEffect方法,但副作用是QGraphicsEffect将被删除,因此必须重新创建QGraphicsEffect:

class GroupBox(QGroupBox):
    def __init__(self, parent=None, shadow=True):
        super(GroupBox, self).__init__(parent)
        self._is_shadow = shadow

    @property
    def is_shadow(self):
        return self._is_shadow

    def enterEvent(self, event):
        if self.is_shadow:
            shadow_effect = QGraphicsDropShadowEffect(
                blurRadius=10, offset=QPointF(0, 0)
            )
            self.setGraphicsEffect(shadow_effect)

    def leaveEvent(self, event):
        if self.is_shadow:
            self.setGraphicsEffect(None)

相关问题 更多 >

    热门问题