wxPython实现整点报时

本文实例为大家分享了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()主循环方法

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

(0)

相关推荐

  • Python(PyS60)实现简单语音整点报时

    本文实例为大家分享了python语音整点报时的具体代码,供大家参考,具体内容如下 主要的技术特殊点在于PyS60的定时器最多只能定2147秒.在手机上直接写的. import e32 import audio import time import appuifw import sys import os.path import marshal def say(oclock): """say the time in English""" c = o

  • wxPython实现整点报时

    本文实例为大家分享了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),st

  • 令人抓狂的100个神经签名推荐看

    1.柏芝你走吧,我舍不得韩红!!!    2.按猪的审美观,我基本算得上是个帅哥~ 3.我不是你想象中的那么完美那么坚强,金钱和美女就足以把我征服! 4.见到我以后你会突然发现--原来帅也可以是这样的具体呀~ 5.姑姑,十六年后我们断肠崖见,到时候别忘了给我发短信! 6.自从两个妓女自称是某名牌大学的毕业生后,我现在一般都自称文盲! 7.天使和魔鬼拿我的灵魂拔河玩~(转载请注明天涯社区) 8.我曾经是个天使,真的!在降临人世间时上帝慈祥地对我说:"去吧,孩子,你是个为补考而生的男人--"

  • 使用python编写简单的小程序编译成exe跑在win10上

    每天的工作其实很无聊,早知道应该去IT公司闯荡的.最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅. 人的精力毕竟是有限的,所以不一定在每个整点都可以及时去做这项工作.灵机一动,这种一丝不苟的活儿应该让计算器来做,由它来在每个整点来告诉我该去工作了. 说干就干,平时只用c#写过小程序,由于办公电脑上是公用的,所以没有想自己电脑一样装有visual studio,索性心一横,用python试试吧.总是听说那句大名鼎鼎的"人生苦

  • 汇编语言实现电子闹钟思路详解

    2.1 设计思路 首先使用8255.8254.8259 三个芯片实现电子时钟的功能,让闹钟可以正常走时:其次,在时钟的基础上添加闹铃功能.整点报时功能.设置当前时间功能:完成设计. 2.2 设计方案 1. 电子时钟部分:此次设计是通过对计数器8254设定计数值对脉冲进行计数,在程序里,8254工作于计数器0,方式3.接入的CLK为1MHz,设计数初值为10000,每100次中断计数一次,产生的记数时间正好是时钟每秒走过的时间.通过对中断控制器8259设置初始化命令字初值来控制中断.程序中通过移位

  • wxPython事件驱动实例详解

    本文实例讲述了wxPython的事件驱动机制,分享给大家供大家参考.具体方法如下: 先来看看如下代码: #!/usr/bin/python # moveevent.py import wx #导入wx库 class MoveEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(250, 180)) #窗口大小为(250, 180) wx.St

  • wxPython定时器wx.Timer简单应用实例

    本文实例讲述了wxPython定时器wx.Timer简单应用.分享给大家供大家参考.具体如下: # -*- coding: utf-8 -*- ######################################################## ## 这是wxPython定时器wx.Timer的简单应用 ## testwxTimer1.pyw ######################################################## import wx impo

  • Python实例之wxpython中Frame使用方法

    本节为大家分享的例子是wxpython Frame的用法. 例子: 复制代码 代码如下: #!/usr/bin/python  # -*- coding: GBK -*-  # simple.py import wx app = wx.App()  frame = wx.Frame(None)  frame.Show()  app.MainLoop() 例2, 复制代码 代码如下: #!/usr/bin/python告诉程序 python 解释器的路径,只是在 linux 系统下有用,在 Win

  • 分析Python编程时利用wxPython来支持多线程的方法

    如果你经常使用python开发GUI程序的话,那么就知道,有时你需要很长时间来执行一个任务.当然,如果你使用命令行程序来做的话,你回非常惊讶.大部分情况下,这会堵塞GUI的事件循环,用户会看到程序卡死.如何才能避免这种情况呢?当然是利用线程或进程了!本文,我们将探索如何使用wxPython和theading模块来实现. wxpython线程安全方法 wxPython中,有三个"线程安全"的函数.如果你在更新UI界面时,三个函数都不使用,那么你可能会遇到奇怪的问题.有时GUI也忙运行挺正

  • wxPython框架类和面板类的使用实例

    本文实例讲述了wxPython框架类和面板类的使用方法,分享给大家供大家参考.具体分析如下: 实现代码如下: import wx class MyApp(wx.App): #自定义应用程序类,类中调用自定义的框架类 def OnInit(self): self.frame = MyFrame(None, title = "My Main Frame jb51.net") self.SetTopWindow(self.frame) self.frame.Show() return Tru

随机推荐