博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pyqt QSplashScreen启动画面
阅读量:6670 次
发布时间:2019-06-25

本文共 3085 字,大约阅读时间需要 10 分钟。

多大数应用程序启动时都会在程序完全启动时显示一个启动画面,在程序完全启动后消失。 程序启动画面可以显示一些有关产品的信息,让用户在等待程序启动的同时了解有关产品的功能,也是一个宣传的方式。 QSplashScreen类提供了在程序启动过程中显示的启动画面的功能 当运行程序时,在显示屏的中央出现一个启动画面,经过一段时间,应用程序完成初始化工作后,启动画面隐去,出现程序的主窗口界面
SplashScreen.py
1 # -*- coding:utf8 -*- 2 from PyQt4 import QtGui,QtCore 3 from PyQt4.QtGui import * 4 from PyQt4.QtCore import * 5 import sys,time 6 from clock import DigiClock 7 class SplashScreen(QSplashScreen): 8     def __init__(self): 9         super(SplashScreen, self).__init__(QPixmap("clock.png"))  #启动程序的图片10 11     #效果 fade =1 淡入   fade= 2  淡出,  t sleep 时间 毫秒12     def effect(self):13         self.setWindowOpacity(0)14         t = 015         while t <= 50:16             newOpacity = self.windowOpacity() + 0.02     #设置淡入17             if newOpacity > 1:18                 break19 20             self.setWindowOpacity(newOpacity)21             self.show()22             t -= 123             time.sleep(0.04)24 25         time.sleep(1)26         t = 027         while t <= 50:28             newOpacity = self.windowOpacity() - 0.02         #设置淡出29             if newOpacity < 0:30                 break31 32             self.setWindowOpacity(newOpacity)33             t += 134             time.sleep(0.04)35 36 37 if __name__ == "__main__":38     app = QtGui.QApplication(sys.argv)39     splash = SplashScreen()40     splash.effect()41     app.processEvents()   ##设置启动画面不影响其他效果42     window = DigiClock()     #程序的主类43     window.show()44     splash.finish(window)      #启动画面完成启动45     sys.exit(app.exec_())

 

clock.py

1 # -*- coding: utf-8 -*- 2 #时钟 3 from PyQt4.QtGui import * 4 from PyQt4.QtCore import * 5 import sys  6      7 class DigiClock(QLCDNumber):  8     def __init__(self,parent=None):  9         super(DigiClock,self).__init__(parent) 10     11         p=self.palette() 12         p.setColor(QPalette.Window,Qt.red) 13         self.setPalette(p) 14           15         self.setNumDigits(19)16         self.dragPosition=None17     18         self.setWindowFlags(Qt.FramelessWindowHint)  19         self.setWindowOpacity(0.5)   # 1表示100%显示, 0.5 透明度50% 20     21         timer=QTimer(self) 22         self.connect(timer,SIGNAL("timeout()"),self.showTime) 23         timer.start(1000) 24     25         self.showTime()         26         self.resize(500,60) 27     28     def mousePressEvent(self,event): 29         if event.button()==Qt.LeftButton: 30             self.dragPosition=event.globalPos()-self.frameGeometry().topLeft() 31             event.accept() 32         if event.button()==Qt.RightButton: 33             self.close() 34     35     def mouseMoveEvent(self,event): 36         if event.buttons() & Qt.LeftButton: 37             self.move(event.globalPos()-self.dragPosition) 38             event.accept() 39     40     def showTime(self): 41         time=QTime.currentTime()42         date=QDate.currentDate()43         text= date.toString("yyyy-MM-dd")+" "+time.toString("hh:mm:ss")     44         self.display(text)45 46 if __name__ == '__main__':47     app=QApplication(sys.argv)48     form=DigiClock()49     form.show()50     app.exec_()

 

clock.png

效果:

 

转载地址:http://bxoxo.baihongyu.com/

你可能感兴趣的文章
Break和Continue的用法
查看>>
CMD命令
查看>>
Angular练习题
查看>>
backbone 学习之history
查看>>
【转】Unity3D运行时刻资源管理
查看>>
【Java】数组升序和降序
查看>>
Implement Trie (Prefix Tree)
查看>>
【佛法】由佛法观爱情与人生——一位居士对爱情、婚姻和家庭的体悟
查看>>
加速数组操作(Array)
查看>>
收集计算机分区信息,去除列中的重复值(Excel)(空行)
查看>>
Python抓取zabbix性能监控图
查看>>
JDBC进行数据库的--增--删--改--案例----纯代码
查看>>
纪录一个table元素里面的tr th td
查看>>
CF1076C Meme Problem 数学
查看>>
iml文件
查看>>
Python编码/文件读取/多线程
查看>>
自己写了一个弹出菜单,有间隙也可以
查看>>
数据的处理和特征工程
查看>>
DBMS_SCHEDULER CHAIN用法
查看>>
html之表格列标题<th>的使用...
查看>>