PyQt中的QSplashScreen類提供了在程序啟動過程中顯示的啟動畫面的功能當(dāng)運(yùn)行程序時,在顯示屏的中央出現(xiàn)一個啟動畫面,經(jīng)過一段時間,應(yīng)用程序完成初始化工作后,啟動畫面隱去,出現(xiàn)程序的主窗口界面的功能。
構(gòu)造函數(shù):
QSplashScreen ([QPixmap pixmap] [,Qt.WindowFlags flags=0])
QSplashScreen (QWidget parent[,QPixmap pixmap] [,Qt.WindowFlags flags=0])
patent參數(shù)指定父組件;pixmap參數(shù)是QPixmap類的實例,用來指定顯示在啟動界面的圖像;flags參數(shù)設(shè)為Qt.WindowStaysOnTopHint可用來將啟動界面置頂。
方法:
show():顯示啟動界面
finish (QWidget w):啟動界面顯示直至主窗口加載完成
showMessage (QString message, int alignment = Qt.AlignLeft, QColor color = Qt.black):的在啟動界面顯示message字符串,字體顏色為color,對齊方式為alignment.
clearMessage():清除showMessage()顯示的字符串。
setPixmap (QPixmap pixmap):設(shè)置啟動界面圖像
pixmap():返回啟動界面圖像的QPixmap實例
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
import time
class MyWindow(QtWidgets.QPushButton):
def __init__(self):
QtWidgets.QPushButton.__init__(self)
self.setText("關(guān)閉窗口")
self.clicked.connect(QtWidgets.qApp.quit)
def load_data(self, sp):
for i in range(1, 11): #模擬主程序加載過程
time.sleep(2) # 加載數(shù)據(jù)
sp.showMessage("加載... {0}%".format(i * 10), QtCore.Qt.AlignHCenter |QtCore.Qt.AlignBottom, QtCore.Qt.black)
QtWidgets.qApp.processEvents() # 允許主進(jìn)程處理事件
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
splash = QtWidgets.QSplashScreen(QtGui.QPixmap("img.jpg"))
splash.showMessage("加載... 0%", QtCore.Qt.AlignHCenter | QtCore.Qt.AlignBottom, QtCore.Qt.black)
splash.show() # 顯示啟動界面
QtWidgets.qApp.processEvents() # 處理主進(jìn)程事件
window = MyWindow()
window.setWindowTitle("QSplashScreen類使用")
window.resize(300, 30)
window.load_data(splash) # 加載數(shù)據(jù)
window.show()
splash.finish(window) # 隱藏啟動界面