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