使用PyQt5完成的开场动画
效果
-
静态图片+动态文字
QPixmap+QSplashScreen
-
动态图片
QMovie+QLabel
静态图片+动态文字
app = QApplication(sys.argv)
pixmap = QPixmap(":/ico.jpg")
splash = QSplashScreen(pixmap)
splash.show()
splash.setCursor(Qt.BlankCursor) # 设置点击图标关闭事件
splash.showMessage("加载中", Qt.AlignCenter, Qt.red) # 第二个参数为字的位置,第三个参数为颜色
app.processEvents() # 使程序还能响应其他事件
"""
此处省略主界面的启动代码
"""
splash.finish(main) # main为主界面的实例
动态图片
label = QLabel("")
mv = QMovie(":/gif/loading.gif")
label.setMovie(mv)
label.setWindowFlags(Qt.FramelessWindowHint) # label窗口无边框设置
label.setAttribute(Qt.WA_TranslucentBackground) # label背景透明
label.move((app.desktop()->width() - window.width()) / 2, (app.desktop()->height() - window.height()) / 2) # 调整位置
label.setScaledContents(True)
mv.start()
label.show()
main = None
while True:
app.processEvents() # 使动画正常播放,不影响主界面构造
if not main:
main = MainWinodw()
break
main.show()
label.close()
来源:oschina
链接:https://my.oschina.net/u/4050197/blog/3212354