最小限のPythonアプリ
一通りサンプルに目を通して、なんとなくPyS60でのアプリケーションの骨組みのようなものが見えてきたような気がする。
filebrowser.pyを参考にして、アプリケーションタイトルを変更し、右ソフトキーで終了するだけのアプリを書いてみた。*1
# # myapp.py # # SYMBIAN_UID = 0x01234567 # import sys import appuifw import e32 class MyApplication: def __init__(self): self.script_lock = e32.Ao_lock() def run(self): old_title = appuifw.app.title self.refresh() self.script_lock.wait() appuifw.app.title = old_title def refresh(self): appuifw.app.title = u"MyApplication" appuifw.app.menu = [] appuifw.app.exit_key_handler = self.exit_key_handler def do_exit(self): self.exit_key_handler() def exit_key_handler(self): appuifw.app.exit_key_handler = None self.script_lock.signal() if __name__ == '__main__': MyApplication().run() # sys.exit()
self.script_lock = e32.Ao_lock()
e32.Ao_lock()で帰ってくるオブジェクトをアプリ側で保持しておいて、
self.script_lock.wait()
waitメソッドを呼ぶと、ユーザーのイベント待ちに入るようだ。
イベントに対するアクションはwaitを呼ぶ前にコールバックとなる関数やメソッドを登録しておく。
appuifw.app.exit_key_handler = self.exit_key_handler
なるほどおおおお。