いわゆるポモドーロテクニック用のタイマーはたくさんあるけれど、以下の不満点を満たしてくれるものがなかなかなかったので、自作してみた。
- タイマーを途中で一時停止することができない。(トイレ行っている間にタイマーが終わってた)
- タイマーを途中で停止することができない。(一区切りついたところで、休憩に入りたいのに、、)
- タイマーを動作させている途中で、PCがスリープに入ってしまう。(パソコン作業だけじゃないでしょ?)
- 音を消していたら、ウインドウの下に隠れていてタイマーが終了したことに気づかない。(ずっとタイマーをみてられないでしょ?)
Windowsでしか使えないパッケージを使ってしまったので、それ以外では動作しないと思います。
- pywin32 (windowを前面に持ってくるのに使用)
hwnd = win32gui.FindWindow(None, title) # windowのハンドルを取得
# 最前面表示の設定
win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 0,
0, 0, 0, win32con.SWP_NOMOVE | win32con.SWP_NOSIZE)
# 最前面表示の解除
win32gui.SetWindowPos(self.hwnd, win32con.HWND_NOTOPMOST, 0,
0, 0, 0, win32con.SWP_NOMOVE | win32con.SWP_NOSIZE)
(参考)
https://office54.net/python/app/windows-foreground-active
https://blog.goo.ne.jp/masaki_goo_2006/e/6ddf4977ba01dd11d6be256c17cc2ccf
- winsound (バックグラウンドで音を鳴らすのに使用)
# バックグラウンドで音を鳴らす
winsound.PlaySound("Clock-Alarm05.wav", winsound.SND_FILENAME | winsound.SND_ASYNC | winsound.SND_LOOP)
# 音を停止する
winsound.PlaySound(None, winsound.SND_ASYNC)