Python はスケジュールされたポップアップ リマインダーを実装します

巴扎黑
リリース: 2016-12-07 10:30:55
オリジナル
4858 人が閲覧しました

私はよくコンピューターを使用し、一度に何時間も座っているので、いつも時間を忘れるので、タイマーリマインダーソフトウェアを見つけようと思いました。ネットで調べたらたくさんあったのでガードとかを見つけて取り付けました。時間が経過すると自動的に画面をロックしカウントダウンします。機能は充実していますが、機能が多すぎるように感じます。今ソフトウェアを使っているとそう感じるかどうかわかりませんが、本来は非常にシンプルな機能が欲しいのですが、多機能なソフトウェアをたくさんインストールしたのにどれも使わないのが最悪です。

実際、私が望んでいるのは、時間が経過した後に休憩を促すウィンドウをポップアップ表示することです。後で、自分でも作ってみようかなと思いました。もちろん、Python 言語が推奨されます。まず第一に、時間ポップアップウィンドウの特定のコードが必要です:

プログラムは独自の Tkinter を使用します。他のパッケージ化プログラムの主な機能をインストールする必要はありません: 1. 起動後に自動的にタイミングを計ります 2. タイミングが完了した後完了すると、ポップアップ ウィンドウが表示されます (デフォルトの時間は 30 分です) 3. [OK] をクリックしてタイマーを再起動します

プログラムにはいくつかの問題があります: 1. インターフェイスはシンプルで洗練されていません (ただし、機能は2. スリープ中はタイマーを自動停止できません

# -*- coding: utf-8 -*-
import time, sys
# 判断python的版本然后import对应的模块
if sys.version < &#39;3&#39;:
from Tkinter import *
else:
from tkinter import *
mydelaymin = 30 #窗口提示的延迟时间,以分钟计
#------------------def-------------------
def showMessage():
#show reminder message window
root = Tk()  #建立根窗口
#root.minsize(500, 200)   #定义窗口的大小
#root.maxsize(1000, 400)  #不过定义窗口这个功能我没有使用
root.withdraw()  #hide window
#获取屏幕的宽度和高度,并且在高度上考虑到底部的任务栏,为了是弹出的窗口在屏幕中间
screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight() - 100 
root.resizable(False,False)
#添加组件
root.title("Warning!!")
frame = Frame(root, relief=RIDGE, borderwidth=3)
frame.pack(fill=BOTH, expand=1) #pack() 放置组件若没有则组件不会显示
#窗口显示的文字、并设置字体、字号
label = Label(frame, text="You have been working 30 minutes! Please have a break!!", \
font="Monotype\ Corsiva -20 bold")
label.pack(fill=BOTH, expand=1)
#按钮的设置
button = Button(frame, text="OK", font="Cooper -25 bold", fg="red", command=root.destroy)
button.pack(side=BOTTOM)
root.update_idletasks()
root.deiconify() #now the window size was calculated
root.withdraw() #hide the window again 防止窗口出现被拖动的感觉 具体原理未知?
root.geometry(&#39;%sx%s+%s+%s&#39; % (root.winfo_width() + 10, root.winfo_height() + 10, 
(screenwidth - root.winfo_width())/2, (screenheight - root.winfo_height())/2))
root.deiconify()
root.mainloop()
#showMessage()
while True:
time.sleep(mydelaymin*60) #参数为秒
showMessage()
ログイン後にコピー

Under が勝った場合、自動で実行する方法を検討する必要があるかもしれません。

バッチファイルを使用しています。詳細は以下の通りです:

ファイル名:rest_python.bat

内容はシンプルで一行だけ(Pythonのバージョンが複数ある場合は修正してください):

Javaコード

python E:\rest.py
ログイン後にコピー

同時にこのバッチ ファイルをバックグラウンドで実行するにはファイルが必要です。少し面倒ですが、もっと簡単な方法があれば共有してください。

ファイル名は、silent_bat.vbe

内容は次のとおりです:

Java コード

set ws=wscript.createobject("wscript.shell")  
ws.run"E:\rest_python.bat /start", 0
ログイン後にコピー

次に、silent_bat.vbe ファイルをスタートアップ フォルダーにドラッグします。 (ショートカットも使えます)

注意点: プログラムはpython2.7システムwin7を使用しています。ファイルの保存場所に応じてバッチ処理ファイルを変更する必要があります。アニメーション スタートアップフォルダーに参加することを忘れないでください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート