Qt 屏幕上没有任务栏项的动画

Qt 屏幕上没有任务栏项的动画,qt,animation,pyside,splash-screen,always-on-top,Qt,Animation,Pyside,Splash Screen,Always On Top,我正在使用Qt(PySide,但欢迎使用任何Qt解决方案)进行一个项目。 我需要有一个图像淡入和做随机动画。完成了,但它创建了自己的任务栏项(恶心)! 代码: 如果我删除setWindowFlags(Qt.WindowStaysOnTopHint),那么它工作得很好,但它不是“始终在顶部”,如果用户使用另一个应用程序,则不会看到动画 必须有一种方法可以在不创建菜单栏项的情况下制作始终处于顶部的动画,但我不确定如何制作。我有一个Q主窗口,以防你好奇 我尝试了大量的国旗组合,但我无法做到所有3个:

我正在使用Qt(PySide,但欢迎使用任何Qt解决方案)进行一个项目。 我需要有一个图像淡入和做随机动画。完成了,但它创建了自己的任务栏项(恶心)! 代码:

如果我删除
setWindowFlags(Qt.WindowStaysOnTopHint)
,那么它工作得很好,但它不是“始终在顶部”,如果用户使用另一个应用程序,则不会看到动画

必须有一种方法可以在不创建菜单栏项的情况下制作始终处于顶部的动画,但我不确定如何制作。我有一个Q主窗口,以防你好奇

我尝试了大量的国旗组合,但我无法做到所有3个: -显示在其他窗口的顶部,如MS Word。 -不接管活动窗口状态。 -此动画窗口不显示任务栏项


上下文:如果你想知道我为什么需要这样做,程序会在后台备份用户的文件,当一个文件完成处理后,它会在50%不透明度的“复选标记”图标中淡出几秒钟,这样用户就知道备份完成了。我无法使用其他方式表示备份已完成。这就是规范。

当调用
setWindowFlags
时,将删除除在参数中指定的标志之外的所有窗口标志。因此,
Qt.SplashScreen
标志被移除,窗口不再是启动屏幕

您应该指定
Qt.WindowStaysOnTopHint
作为
qsplashsscreen
构造函数的第二个参数。见文件:

qsplashsscreen::qsplashsscreen(常量QPixmap&pixmap=QPixmap(),Qt::WindowFlags f=0)

应该不需要设置小部件标志f,除了Qt::WindowStaysOnTopHint

如果以后需要动态添加
Qt.WindowStaysOnTopHint
,可以执行以下操作

self.lab.setWindowFlags(self.lab.windowFlags() | Qt.WindowStaysOnTopHint)

self.lab.setWindowFlags(self.lab.windowFlags() | Qt.WindowStaysOnTopHint)
self.lab.setWindowFlags(Qt.SplashScreen | Qt.WindowStaysOnTopHint)