主要的技术特殊点在于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 = oclock

if c > 12:

c -= 12

cs = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve'][c]

audio.say("it's " + cs + " o'clock.")

def say_current():

global Sayflags

t = time.localtime()

# say according to configuration

if Sayflags[int(t[3])] == 1:

say(t[3])

def on_oclock():

"""when an o'clock arrived"""

say_current()

start_timer()

def start_timer():

"""start a timer that will be reached at next o'clock"""

global Timer

lt = time.localtime()

d = 60 * (59 - lt[4]) + 61 - lt[5]

if d>2147:

Timer.after(2147, lambda : Timer.after(d-2147, on_oclock))

else:

Timer.after(d, on_oclock)

def clock_names():

return [u'0:00', u'1:00', u'2:00', u'3:00', u'4:00', u'5:00', u'6:00', u'7:00', u'8:00', u'9:00', u'10:00', u'11:00', u'12:00', u'13:00', u'14:00', u'15:00', u'16:00', u'17:00', u'18:00', u'19:00', u'20:00', u'21:00', u'22:00', u'23:00']

def list_handler():

"""set flag and refresh the listbox"""

global Lb

global Sayflags

c = Lb.current()

Sayflags[c] = 1 - Sayflags[c]

Lb.set_list(list_content(), c)

def list_content():

global Sayflags

icons = [appuifw.Icon(u"z:\\resource\\apps\\avkon2.mif", 16506, 16507), appuifw.Icon(u"z:\\resource\\apps\\avkon2.mif", 16504, 16505)] # unchecked, unchecked

return map(lambda s, f: tuple([s, icons[f]]), clock_names(), Sayflags)

def exit_handler():

global Lock

global Timer

global Standalone

Timer.cancel()

save_cfg()

if not Standalone:

Lock.signal()

else:

appuifw.app.set_exit()

def save_cfg():

global Sayflags

try:

f = open(Configfile, 'wb')

marshal.dump(Sayflags, f)

f.close()

except:

pass

def load_cfg():

global Sayflags

try:

f = open(Configfile, 'rb')

Sayflags = marshal.load(f)

f.close()

except:

pass

# Testing code

def test():

say_current()

#on_oclock()

#for n in range(1,13):

# say(n)

#test()

def main():

global Standalone

appuifw.app.title = u'Audio Clock'

appuifw.app.exit_key_handler = exit_handler

appuifw.app.body = Lb

if time.localtime()[4] == 0:

say_current()

start_timer()

if not Standalone:

Lock.wait()

Standalone = True

Timer = e32.Ao_timer()

Lock = e32.Ao_lock()

Configfile = os.path.abspath(os.path.dirname(sys.argv[0])) + '\\audioclock.cfg'

Sayflags = [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1] #24 clocks' flags

load_cfg()

Lb = appuifw.Listbox(list_content(), list_handler)

main()

python报时功能_Python(PyS60)做的简单语音整点报时的实现相关推荐

  1. python报时功能_Python(PyS60)实现简单语音整点报时

    本文实例为大家分享了python语音整点报时的具体代码,供大家参考,具体内容如下 主要的技术特殊点在于PyS60的定时器最多只能定2147秒.在手机上直接写的. import e32 import a ...

  2. python主要功能_Python主要功能

    python主要功能 Python main function is executed only when it's being executed as a python program. As yo ...

  3. 学简单python好学吗_python好学吗语法简单吗举个例子

    pythonPython (发音:[ 'paiθ()n; (US) 'paiθn ]n.蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的 ...

  4. python runner功能_Python 如何使用 HttpRunner 做接口自动化测试

    点击上方"软测小生",选择"加为星标" 第一时间关注软件测试原创干货! 1. 前言 原始测试金子塔包含 3 层,分别是:UI 自动化测试.接口服务测试.单元测试 ...

  5. python私人兼职_python能做什么副业#下班后有哪些兼职副业

    [www.uzhan5.com - U5副业网]#python能做什么副业# 人生苦短,我用Python. 近年来,Python凭借其简洁易入门的特点受到越来越多人群的青睐. 当然这不仅仅是针对程序员 ...

  6. 理解python并发编程_Python并发编程很简单

    上次已经和大家探讨了关于进程和线程的区别和联系相关的东东,今天呢,咱们再次回到 好啦,废话少说,咱们就开始吧! 首先说一下哦,_thread和threading哦,到这可能有朋友会问了,这两个有什么区 ...

  7. python语言能做什么-Python是什么_python能做什么

    Python是什么 Python是一种编程语言,它的名字来源于一个喜剧.也许最初设计Python这种语言的人并没有想到今天Python会在工业和科研上获得如此广泛的使用.著名的自由软件作者Eric R ...

  8. 海龟作图python小猪佩奇_python海龟做图20秒完成小猪佩奇,附源码!

    Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具备近二十年的发展历史,成熟且稳定.它包含了一组完善并且容易理 ...

  9. python自动回复qq消息_基于python使用qqbot接入qq做一个简单的文字消息自动回复

    qqbot是一个免费开源的基于smartqq的python插件,如果默认安装有pip,则可以直接在命令行下执行:pip install qqbot安装qqbot,安装成功后可以在命令行输入qqbot ...

  10. python requests 示例_Python Requests模块的简单示例

    这篇文章主要为大家详细介绍了Python Requests模块的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

最新文章

  1. Spring @Value 设置默认值
  2. No result defined for action action.LoginAction and result success 问题解决
  3. 若依的框架怎么样_基于bootstrapTable的若依框架如何获取表格选中行的整行数据?...
  4. 逐步淘汰,微软宣布多款产品将停止支持 IE11
  5. 15.5.1【Task实现细节】 生成的代码
  6. proxy_cache的使用
  7. 关于南宁市教育云网站的网课视频链接blob加密破解
  8. php网站后台不显示验证码,网站后台验证码不显示原因
  9. 你理解的精益可能是错的!——从源头重新解读精益
  10. 回退到首页,返回浏览器窗口历史第一页 js
  11. 误码率matlab怎么计算,PSK理论误码率与实际误码率MATLAB仿真程序(最新整理)
  12. tiff与GDAL笔记
  13. 别在那抱怨高考怎么不考DOTA呢!!高考就是考DOTA你也不行!
  14. 使用itext对pdf指定文字位置插入图片
  15. 亚马逊关联账号有哪些类型
  16. 【论文阅读】The Generals’ Scuttlebutt: Byzantine-Resilient Gossip Protocols
  17. 图像处理时为什么灰度化 【文末赠书】
  18. ajax同步和异步区别
  19. STC单片机74hc164驱动8位数码管动态显示
  20. mysql官网下载官网示例sql文件

热门文章

  1. Ubuntu 16.04LTS+NVIDIA@GT620M+CUDA6.5环境搭建总结
  2. java6http,java http
  3. cp正在写入文件导致文件内容不一致
  4. Windows组策略
  5. 浏览器主页被360篡改怎么办?
  6. 如何将一个服务器加入域控中,Windows Server如何创建域并加入域
  7. 梯度向量的超简单理解
  8. EAUML日拱一卒-活动图::14.2 Behavior StateMachines (10)
  9. html 心形字符,心形符号大全
  10. M文件打包成jar包详解