如何禁用QSplashScreen的默认“单击关闭”行为?

时间:2019-04-03 22:49:10

标签: python pyside2

我正在使用QSplashScreen免费获得某些所需的行为:图像显示,居中,轻松无框。

问题在于,对于我的用例,我不想单击图像来关闭屏幕。

我已经尝试重写eventFilter,因为许多关于此行为的c ++文章都建议这样做,但是在PySide 2.x.x / Qt5中,从未调用过该方法。

class MySplashScreen(QtWidgets.QSplashScreen):
    def __init__(self, my_pixmap):
        super(MySplashScreen, self).
            __init__(my_pixmap, QtCore.Qt.FramelessWindowHint)

        self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint |
                            QtCore.Qt.FramelessWindowHint)

    def eventFilter(self, object, event):
        print("never called")

我还缺少其他简单的东西吗?

1 个答案:

答案 0 :(得分:0)

出于我的目的,我要做的就是重写mousePressEvent()并传递。

def mousePressEvent(self, event):
    # disable default "click-to-dismiss" behaviour
    pass

这阻止了点击消除屏幕,但是并没有影响我在初始屏幕上方放置的UI元素上的鼠标事件,因此它打勾了我所有的框。