2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ステータスバーに表示させるキッチンタイマーを作ってみた!

Posted at

#背景

キッチンタイマーが欲しいなあ。
でもアプリとかだとブラウザ開いたりして常に見ることできないしなあ。
じゃあiPhoneで良いじゃんって思ったけど、つい携帯触っちゃうしダメじゃん!!

常に見えるところで場所を取らないキッチンタイマーが欲しい!
あれ?Macの最上部、ステータスバー良いじゃん!作ってみよ!

こういう流れで作ってみました。

#作り方

こちらの記事を参考にしました。
https://qiita.com/hartmann16325/items/8667611fcaf68b9a948b

僕はpythonを使うので調べたところ、rumpsというライブラリを使えばステータスバーでの操作が可能とのこと。

GitHubにあげているのでよかったらどうぞ!
https://github.com/tokky08/Kitchen_timer

@rumps.clicked(u'30分')
def selectTimer(sender):
    global minute
    minute = 30

    global start
    start = time.time()

ここでメニューバーの作成です。


@rumps.timer(1)
def dispTimer(sender):
    
    timer_minute = str(minute-1)
    timer_second = str(second - int(time.time() - start) % 60)

    remaining_minute = int(time.time() - start) // 60
    timer_minute = str(int(timer_minute) - remaining_minute)

    if int(timer_minute) < 0:
        app.title = "TIME UP"
        if int(timer_minute) == -1 and int(timer_second) == 58:
            rumps.notification(message="作業をやめてください!!!", title="TIME UP!", subtitle="")


    else:
        if int(timer_second) < 10:
            timer_second = "0" + timer_second

        app.title = "残り時間:" + timer_minute + ":" + timer_second

ここでこの関数が1秒ごとに実行されます。
分と秒に分けて考えています。

分は、time.time()-startはカウントダウンし始めからこの関数が実行された時間を引いた秒数が計算されます。
そして、secondはここでは59としています。
second-int(time.time()-start)で1秒ずつ減っていくことを表しています。
%60しているのはマイナス表示にならないためです。

秒は、remaining_minuteで経過した分を表しています。
それを選択したタイムから引くことで残りの分を表すことができます。

#まとめ
思い立ってあれこれ調べて6時間かけて完成しました。
簡単そうに見えてもいざ作ろうとなるといくつか試練が出てきますね。
それでもアイデアを具現化することができてプログラミングは面白いな!と思います。

何か誤り等あればご指摘よろしくお願いいたします。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?