当我们启动程序时会出现一个加载的动画或者图片,下来我们实现它
PyQt中的QSplashScreen类提供了在程序启动过程中显示的启动画面的功能当运行程序时,在显示屏的中央出现一个启动画面,经过一段时间,应用程序完成初始化工作后,启动画面隐去,出现程序的主窗口界面的功能。
函数原型:
QSplashScreen ([QPixmap pixmap] [,Qt.WindowFlags flags=0])
QSplashScreen (QWidget parent[,QPixmap pixmap] [,Qt.WindowFlags flags=0])
参数解释:patent参数指定父组件;pixmap参数是QPixmap类的实例,用来指定显示在启动界面的图像;flags参数设为Qt.WindowStaysOnTopHint可用来将启动界面置顶。
QSplashScreen类的方法:
show(): 显示启动界面
finish (QWidget w): 启动界面显示直至主窗口加载完成
showMessage (QString message, int alignment = Qt.AlignLeft, QColor color = Qt.black):的在启动界面显示message字符串,字体颜色为color,对齐方式为alignment.
clearMessage(): 清除showMessage()显示的字符串。
setPixmap (QPixmap pixmap): 设置启动界面图像
pixmap(): 返回启动界面图像的QPixmap实例
finish (QWidget w): 启动界面显示直至主窗口加载完成
showMessage (QString message, int alignment = Qt.AlignLeft, QColor color = Qt.black):的在启动界面显示message字符串,字体颜色为color,对齐方式为alignment.
clearMessage(): 清除showMessage()显示的字符串。
setPixmap (QPixmap pixmap): 设置启动界面图像
pixmap(): 返回启动界面图像的QPixmap实例
1 from PyQt5 import QtCore, QtGui, QtWidgets 2 import time 3 4 class MyWindow(QtWidgets.QPushButton): 5 6 def __init__(self): 7 QtWidgets.QPushButton.__init__(self) 8 self.setText("关闭窗口") 9 self.clicked.connect(QtWidgets.qApp.quit) 10 11 def load_data(self, sp): 12 for i in range(1, 11): #模拟主程序加载过程 13 time.sleep(2) # 加载数据 14 sp.showMessage("加载... {0}%".format(i * 10), QtCore.Qt.AlignHCenter |QtCore.Qt.AlignBottom, QtCore.Qt.black) 15 QtWidgets.qApp.processEvents() # 允许主进程处理事件 16 17 if __name__ == "__main__": 18 import sys 19 app = QtWidgets.QApplication(sys.argv) 20 splash = QtWidgets.QSplashScreen(QtGui.QPixmap("img.jpg")) 21 splash.showMessage("加载... 0%", QtCore.Qt.AlignHCenter | QtCore.Qt.AlignBottom, QtCore.Qt.black) 22 splash.show() # 显示启动界面 23 QtWidgets.qApp.processEvents() # 处理主进程事件 24 window = MyWindow() 25 window.setWindowTitle("QSplashScreen类使用") 26 window.resize(300, 30) 27 window.load_data(splash) # 加载数据 28 window.show() 29 splash.finish(window) # 隐藏启动界面 30
链接:https://www.jianshu.com/p/672c4ab0736b