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实现通过哈希算法检测图片重复的教程
Apr 02 Python
Python随机生成带特殊字符的密码
Mar 02 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
Jun 13 Python
python求质数的3种方法
Sep 28 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
python实现的自动发送消息功能详解
Aug 15 Python
python2和python3哪个使用率高
Jun 23 Python
python OpenCV学习笔记
Mar 31 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
javascript求日期差的方法
2016/03/02 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
python解析xml文件操作实例
2014/10/05 Python
浅谈Python的文件类型
2016/05/30 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
英文版餐饮运营管理求职信
2013/11/06 职场文书
优秀员工事迹材料
2014/12/20 职场文书
实习班主任自我评价
2015/03/11 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
赢在执行观后感
2015/06/16 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js