當我們啟動程序時會出現一個加載的動畫或者圖片,下來我們實現它
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