python - 如何禁用 QSplashScreen 的默认“点击关闭”行为?
问题描述
我正在使用 QSplashScreen 免费获得一些所需的行为:图像显示、居中、轻松无框。
问题是对于我的用例,我不希望点击图像来关闭屏幕。
我已经尝试过覆盖 eventFilter ,因为很多关于这种行为的 c++ 帖子都暗示了这一点,但是在 PySide 2.xx / 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")
我还缺少其他简单的东西吗?
解决方案
出于我的目的,我所要做的就是覆盖 mousePressEvent() 并通过。
def mousePressEvent(self, event):
# disable default "click-to-dismiss" behaviour
pass
这可以防止点击关闭屏幕,但不会影响我在初始屏幕顶部布局的 UI 元素上的鼠标事件,因此它勾选了我的所有框。
推荐阅读
- c# - “服务器以 405 状态响应”+“访问 fetch... from origin... 已被 CORS 策略阻止”
- swiftui - 无法在视图之间共享环境
- django - Django-taggit如何修改不同用户添加相同的标签
- android - 我应该在 Play 商店停用旧的 APK for Android 应用吗?
- jenkins - 如何在 Groovy 中使用 shell 重启 Jenkins 节点
- css - 保持圆圈内图像的纵横比
- javascript - API 请求在 ajax 中不起作用,但在 POSTMAN 中起作用
- slim - 当我尝试为 Slim 中的所有路由注册 csrf 中间件时,为什么我的依赖容器变量未定义?
- identityserver4 - ASP.NET Core 3 React SPA 模板 - 设置 AccessTokenLifetime
- javascript - 使用动态令牌在 redux 中迭代状态