Pyqt5學習之路【3】加載界面


當我們啟動程序時會出現一個加載的動畫或者圖片,下來我們實現它

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實例
 
 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM