Pyqt QSplashScreen启动画面

时间:2021-05-11 10:01:50
多大数应用程序启动时都会在程序完全启动时显示一个启动画面,在程序完全启动后消失。
程序启动画面可以显示一些有关产品的信息,让用户在等待程序启动的同时了解有关产品的功能,也是一个宣传的方式。
QSplashScreen类提供了在程序启动过程中显示的启动画面的功能
当运行程序时,在显示屏的*出现一个启动画面,经过一段时间,应用程序完成初始化工作后,启动画面隐去,出现程序的主窗口界面
SplashScreen.py
 # -*- coding:utf8 -*-
from PyQt4 import QtGui,QtCore
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys,time
from clock import DigiClock
class SplashScreen(QSplashScreen):
def __init__(self):
super(SplashScreen, self).__init__(QPixmap("clock.png")) #启动程序的图片 #效果 fade =1 淡入 fade= 2 淡出, t sleep 时间 毫秒
def effect(self):
self.setWindowOpacity(0)
t = 0
while t <= 50:
newOpacity = self.windowOpacity() + 0.02 #设置淡入
if newOpacity > 1:
break self.setWindowOpacity(newOpacity)
self.show()
t -= 1
time.sleep(0.04) time.sleep(1)
t = 0
while t <= 50:
newOpacity = self.windowOpacity() - 0.02 #设置淡出
if newOpacity < 0:
break self.setWindowOpacity(newOpacity)
t += 1
time.sleep(0.04) if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
splash = SplashScreen()
splash.effect()
app.processEvents() ##设置启动画面不影响其他效果
window = DigiClock() #程序的主类
window.show()
splash.finish(window) #启动画面完成启动
sys.exit(app.exec_())

clock.py

 # -*- coding: utf-8 -*-
#时钟
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys class DigiClock(QLCDNumber):
def __init__(self,parent=None):
super(DigiClock,self).__init__(parent) p=self.palette()
p.setColor(QPalette.Window,Qt.red)
self.setPalette(p) self.setNumDigits(19)
self.dragPosition=None self.setWindowFlags(Qt.FramelessWindowHint)
self.setWindowOpacity(0.5) # 1表示100%显示, 0.5 透明度50% timer=QTimer(self)
self.connect(timer,SIGNAL("timeout()"),self.showTime)
timer.start(1000) self.showTime()
self.resize(500,60) def mousePressEvent(self,event):
if event.button()==Qt.LeftButton:
self.dragPosition=event.globalPos()-self.frameGeometry().topLeft()
event.accept()
if event.button()==Qt.RightButton:
self.close() def mouseMoveEvent(self,event):
if event.buttons() & Qt.LeftButton:
self.move(event.globalPos()-self.dragPosition)
event.accept() def showTime(self):
time=QTime.currentTime()
date=QDate.currentDate()
text= date.toString("yyyy-MM-dd")+" "+time.toString("hh:mm:ss")
self.display(text) if __name__ == '__main__':
app=QApplication(sys.argv)
form=DigiClock()
form.show()
app.exec_()
clock.png

Pyqt  QSplashScreen启动画面

效果:

Pyqt  QSplashScreen启动画面