为什么PyQt5中的图形效果不会改变?

时间:2018-07-15 13:30:13

标签: python-3.x qt5 pyqt5

我正在使用PyQt5和Python3编写程序。 显示弹出窗口时,我正在使用QGraphicsBlurEffect对主窗口小部件进行模糊处理。 问题在于,当关闭弹出窗口时,模糊效果仍在主窗口小部件上,并且无法正常显示。关闭弹出窗口后如何将其设置为正常?(在关闭弹出窗口时将mainwindow的graphicsEffect设置为None,但它没有任何改变)。

这是代码:

主窗口小部件:

    self.blureffect = QGraphicsBlurEffect(self) #defining the effect

    def fontpgshow(self): #shows the popup window
        self.setGraphicsEffect(self.blureffect) #puts the blur effect on the main widget

        #the 3 bottom lines show the popup window
        import fontwindow
        self.fontpg = fontwindow.fontpage()
        self.fontpg.show()

弹出窗口:

    def closeEvent(self,event):
        event.accept()
        #in the bottom lines I set the effect of main window to None
        import settingswindow
        self.setpg = settingswindow.settingspage()
        self.setpg.setGraphicsEffect(None)

1 个答案:

答案 0 :(得分:0)

我通过将弹出式窗口的类型从QWidget更改为QDialog解决了我的问题,并在self.accept()中使用了self.reject()QDialog发送信号到主窗口小部件,这里是设置页面。收到信号后,我将主窗口小部件的图形效果设置为None,现在一切正常。