PyQt5编程(5):启动界面

PyQt中的QSplashScreen类提供了在程序启动过程中显示的启动画面的功能当运行程序时,在显示屏的中央出现一个启动画面,经过一段时间,应用程序完成初始化工作后,启动画面隐去,出现程序的主窗口界面的功能。
构造函数:
QSplashScreen ([QPixmap pixmap] [,Qt.WindowFlags flags=0])
QSplashScreen (QWidget parent[,QPixmap pixmap] [,Qt.WindowFlags flags=0])
patent参数指定父组件;pixmap参数是QPixmap类的实例,用来指定显示在启动界面的图像;flags参数设为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):设置启动界面图像
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("关闭窗口")
        self.clicked.connect(QtWidgets.qApp.quit)

    def load_data(self, sp):
        for i in range(1, 11):              #模拟主程序加载过程 
            time.sleep(2)                   # 加载数据
            sp.showMessage("加载... {0}%".format(i * 10), QtCore.Qt.AlignHCenter |QtCore.Qt.AlignBottom, QtCore.Qt.black)
            QtWidgets.qApp.processEvents()  # 允许主进程处理事件

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()          # 处理主进程事件
    window = MyWindow()
    window.setWindowTitle("QSplashScreen类使用")
    window.resize(300, 30)
    window.load_data(splash)                # 加载数据
    window.show()
    splash.finish(window)                   # 隐藏启动界面
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,173评论 25 708
  • 《ilua》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 1...
    叶染柒丶阅读 10,945评论 0 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,891评论 18 139
  • 没想到这么快就会写第二篇,在第一篇写完之后的十五分钟内,我浏览了简书的设置方式,下载了安卓版,去换了套睡衣,还烧了...
    Seasong阅读 647评论 1 50
  • 他于我而言是什么呢? 是救赎,是久旱后的雨露,是黑暗里突然透出的光,是我在高三这个沉重压抑的时期里安慰自己的唯一方...
    黎霜晓阅读 247评论 0 0