私は先生です。私のコースには、Orageのタイムアウトイベントを通じて発表され、通知に送信されるいくつかのルーチンがあります。たとえば、
- 掃除する
- 椅子を立てる
学生は、活動までの残り時間を警告するために、画面にカウントダウンタイマーを表示するように依頼しました。私は、XFceを使用してフルスクリーンアイテムで覆われていない画面上部のパネルとして表示されるか、常にすべてのウィンドウの上に表示されるクリックできない透明なヘッドアップディスプレイとして表示されることがあります。
たとえば、
- 3時10分から掃除されるまで。
- 6時10分から授業が終わるまで。
これは手動でアクティブになるカウントダウンではなく、毎日特定の時間に発生します。たとえば、10分のカウントダウンは午後3時に始まり、午後3時10分に0時に終了します。アクティベーションスクリプトを使用できますが、orage
カウンタと情報を表示する方法が必要です。
このようなカウントダウンタイマーを画面に表示する方法はありますか?
ベストアンサー1
出力機能を備えたPython tkinter
GUIアプリケーションとウィジェットを作成する最も簡単で簡単な方法です。 GUIを作成するのはtkinter
簡単な作業です。
インストールするには、次のコマンドを使用する必要があります。tkinter
apt-get install python-tk python3-tk
Fedora ユーザーの場合は、次のコマンドを使用します。
dnf install python-tkinter python3-tkinter
tkinter
以下は常に上部に透明に表示される簡単なカウントダウンスクリプトです。
import tkinter as tk
from datetime import datetime, time
def dateDiffInSeconds(date1, date2):
timedelta = date2 - date1
return timedelta.days * 24 * 3600 + timedelta.seconds
def daysHoursMinutesSecondsFromSeconds(seconds):
minutes, seconds = divmod(seconds, 60)
hours, minutes = divmod(minutes, 60)
days, hours = divmod(hours, 24)
return (days, hours, minutes, seconds)
def counter_label(label):
leaving_date = datetime.strptime('2022-01-01 01:00:00', '%Y-%m-%d %H:%M:%S') #end time to count down
def count():
now = datetime.now()
counter = daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, leaving_date))
label.config(text=str("%d days, %d hours, %d minutes, %d seconds" % counter))
label.after(1000, count)
count()
root = tk.Tk()
root.attributes('-topmost', True) #always on top
root.title("Counting Seconds") #title
label = tk.Label(root, fg="dark green") #font color
label.pack()
counter_label(label)
button = tk.Button(root, text='Stop', width=25, command=root.destroy) #stop button
button.pack()
root.wait_visibility(root)
root.wm_attributes('-alpha',0.5) # transparent windows 0.1 - 1
root.mainloop()