PyQt5开场动画

谁都会走 提交于 2020-03-27 12:17:25

3 月,跳不动了?>>>

使用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()

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!