📄 051-vocabu.py
字号:
import os, os.path, audio, appuifw, camera, key_codes, graphicsPATH = "E:\\Data\\Vocabulector\\"def load_translations(): global trans, dict_file if not os.path.exists(PATH): os.makedirs(PATH) dict_file = file(PATH + "trans.txt", "rw") trans = [] for line in dict_file: line = line.decode("utf-8") native, foreign = line.strip().split(":") trans.append((native, foreign))def add_entry(): global fname, text, photo text = photo = None native = appuifw.query(u"Native word:", "text") if not native: return foreign = appuifw.query(u"Foreign word:", "text") if not foreign: return fname = PATH + native trans.append((native, foreign)) line = "%s:%s" % (native, foreign) print >> dict_file, line.encode("utf-8") if appuifw.query(u"Record sound", "query"): record_sound() if appuifw.query(u"Take photo", "query"): camera.start_finder(viewfinder) canvas.bind(key_codes.EKeySelect, take_photo) else: appuifw.note(u"Entry added!", "info")def record_sound(): snd = audio.Sound.open(fname + ".wav") snd.record() appuifw.query(u"Press OK to stop recording", "query") snd.close()def viewfinder(img): canvas.blit(img)def take_photo(): global photo canvas.bind(key_codes.EKeySelect, None) camera.stop_finder() photo = camera.take_photo(size = (640,480)) handle_redraw(None) photo.save(fname + ".jpg")def show_native(): lst = [] for native, foreign in trans: lst.append(native) idx = appuifw.selection_list(choices = lst, search_field = 1) if idx != None: foreign = trans[idx][1] fname = PATH + lst[idx] show(fname, foreign)def show_foreign(): lst = [] for native, foreign in trans: lst.append(foreign) idx = appuifw.selection_list(choices = lst, search_field = 1) if idx != None: native = trans[idx][0] fname = PATH + native show(fname, native)def show(fname, translation): global photo, text, snd photo = None text = translation try: photo = graphics.Image.open(fname + ".jpg") except: pass handle_redraw(None) try: snd = audio.Sound.open(fname + ".wav") snd.play() except: passdef handle_redraw(rect): canvas.clear((255, 255, 255)) w, h = canvas.size if photo: canvas.blit(photo, target = (0, 0, w, int(0.75 * h)), scale = 1) if text: canvas.text((20, h / 2), text, fill = (0, 0, 255), font = "title")def quit(): dict_file.close() app_lock.signal()photo = Nonetext = u"<vocabulector>"appuifw.app.title = u"Personal vocabulary trainer"appuifw.app.exit_key_handler = quitappuifw.app.screen = 'large'canvas = appuifw.Canvas(redraw_callback = handle_redraw)appuifw.app.body = canvasappuifw.app.menu = [(u"Add entry", add_entry), (u"Show native entries", show_native), (u"Show foreign entries", show_foreign)]load_translations()app_lock = e32.Ao_lock()app_lock.wait()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -