当前位置:   article > 正文

PyQt5中QSplashScreen实现软件启动界面_pyqt qsplashscreen

pyqt qsplashscreen

直接上代码

from PyQt5 import QtCore, QtWidgets
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import time
import sys
#重写QSplashScreen类
class MySplashScreen(QSplashScreen):
    # 鼠标点击事件
    def mousePressEvent(self, event):
        pass

# 主界面
class MyWindow(QMainWindow):
    # 初始化MenuDemo子类
    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)
        self.setWindowTitle("Demo")
        # 宽×高
        self.resize(600, 600)
        # 最小窗口尺寸
        self.setMinimumSize(600,500)
        self.btn = QPushButton('关闭窗口')
        self.btn.clicked.connect(self.fun_Exit)
        self.setCentralWidget(self.btn)

    def load_data(self, sp):
        for i in range(1, 11):  # 模拟主程序加载过程
            time.sleep(1)  # 加载数据
            sp.showMessage("加载... {0}%".format(i * 10), QtCore.Qt.AlignHCenter | QtCore.Qt.AlignBottom, QtCore.Qt.black)
            QtWidgets.qApp.processEvents()  # 允许主进程处理事件

    # 退出菜单响应
    def fun_Exit(self):
        response_quit = QApplication.instance()
        response_quit.quit()

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    #设置启动界面
    splash = MySplashScreen()
    #初始图片
    splash.setPixmap(QPixmap('D:\image_process\image_process\Lena2.jpg'))  # 设置背景图片
    #初始文本
    splash.showMessage("加载... 0%", QtCore.Qt.AlignHCenter | QtCore.Qt.AlignBottom, QtCore.Qt.black)
    # 设置字体
    splash.setFont(QFont('微软雅黑', 10))
    # 显示启动界面
    splash.show()
    app.processEvents()  # 处理主进程事件
    #主窗口
    window = MyWindow()
    window.load_data(splash)  # 加载数据
    window.show()
    splash.finish(window)  # 隐藏启动界面
    splash.deleteLater()
    app.exec_()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

总结:

    为避免开始时,鼠标点击启动界面图片闪退问题,重写了QSplashScreen类的mousePressEvent事件
  • 1

运行结果:
启动界面图片:
在这里插入图片描述
主窗口:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/447888
推荐阅读
相关标签
  

闽ICP备14008679号