wxPython实现整点报时


Posted in Python onNovember 18, 2019

本文实例为大家分享了wxPython整点报时的具体代码,供大家参考,具体内容如下

# C盘要有个wav文件,内含报时音频
import wx              
import time# 获取时间
import wave# 波形处理
import pyaudio# 播放器

class MyFrame(wx.Frame):
 def __init__(self,parent,id):
  wx.Frame.__init__(self,parent,id,title="整点报时",size=(410,150),style=wx.SYSTEM_MENU|wx.MINIMIZE_BOX|wx.CLOSE_BOX|wx.CAPTION)
  self.Center()
  self.InitUI()
  
 def InitUI(self):
  panel = wx.Panel(self)
  panel.SetBackgroundColour("green")
  t = time.strftime("%H:%M:%S",time.localtime())# 设置初始值
  self.text = wx.StaticText(panel,-1,t)
  font = wx.Font(72,wx.DEFAULT,wx.FONTSTYLE_NORMAL,wx.NORMAL,faceName="黑体")
  self.text.SetFont(font)
  self.text.SetForegroundColour("red")
  self.timer = wx.Timer(self)# 创建一个计时器对象
  self.Bind(wx.EVT_TIMER,self.Time,self.timer)# 绑定计时器事件
  self.timer.Start(1000)# 计时器计时1秒
  
 def Time(self,event):
  t = time.strftime("%H:%M:%S",time.localtime())
  self.text.SetLabel(t)# 刷新显示
  for i in range(0,24):
   temp = "{:0>2d}:00:00".format(i)
   if t == temp:# 判断是否为整点
    filename = "C:\\wav\\"+"{:0>2d}.wav".format(i)# 找到对应的wav文件路径
    self.Sound(filename)# 播放声音
    break
   
 def Sound(self,filename):
  f = wave.open(filename,'rb')# 加载音频文件(wav)
  pms = f.getparams()# 获取音频的属性参数
  nchannels, sampwidth, framerate, nframes = pms[:4]# 单独提取出各参数的值,并加以定义
  p = pyaudio.PyAudio()# 创建一个播放器
  s = p.open(format = p.get_format_from_width(sampwidth),channels = nchannels,rate = framerate,output = True)# 将音频转换为音频流
  while True:
   data = f.readframes(1024)# 按照1024大小的块,读取音频数据,得到一系列二进制编码
   if data == b'':
    break
   s.write(data)# 开始按照音频的参数,播放音频
  s.close()
  p.terminate()
   
if __name__ == '__main__':
 app = wx.App()           # 初始化wx.App类
 frame = MyFrame(parent=None, id=-1) # 实例MyFrame类,并传递参数
 frame.Show()            # 显示窗口
 app.MainLoop()           # 调用App类的MainLoop()主循环方法

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python多线程用法实例详解
Jan 15 Python
Django后台获取前端post上传的文件方法
May 28 Python
python opencv实现运动检测
Jul 10 Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
python中字典按键或键值排序的实现代码
Aug 27 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
Python如何安装第三方模块
May 28 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 Python
Pytorch 图像变换函数集合小结
Feb 01 Python
python字符串的拼接方法总结
Nov 18 #Python
python将字符串转变成dict格式的实现
Nov 18 #Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 #Python
python实现输出一个序列的所有子序列示例
Nov 18 #Python
Python中的四种交换数值的方法解析
Nov 18 #Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 #Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 #Python
You might like
用Php实现链结人气统计
2006/10/09 PHP
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
用header 发送cookie的php代码
2007/03/16 PHP
php二维数组转成字符串示例
2014/02/17 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
JavaScript this关键字的深入详解
2021/01/14 Javascript
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
python自动发送邮件脚本
2018/06/20 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
python中cPickle类使用方法详解
2018/08/27 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
让世界充满爱演讲稿
2014/05/24 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
烟台的海导游词
2015/02/02 职场文书
单位实习介绍信
2015/05/05 职场文书
小学新课改心得体会
2016/01/22 职场文书
接收函
2019/04/22 职场文书
python使用shell脚本创建kafka连接器
2022/04/29 Python