>  기사  >  백엔드 개발  >  Python은 예약된 팝업 알림을 구현합니다.

Python은 예약된 팝업 알림을 구현합니다.

巴扎黑
巴扎黑원래의
2016-12-07 10:30:554778검색

컴퓨터를 자주 사용하고 몇 시간씩 앉아 있기 때문에 항상 시간을 잊어버리기 때문에 타이머 알림 소프트웨어를 찾아볼까 생각했습니다. 인터넷에서 찾아보니 경비대 같은 걸 찾아서 설치했어요. 시간이 지나면 자동으로 화면 카운트다운을 잠급니다. 기능은 좋은데 기능이 너무 많은 것 같은 느낌이 듭니다. 지금 소프트웨어를 사용하시면서 이런 생각이 들었는지 모르겠습니다. 원래는 아주 단순한 기능을 원하셨는데, 기능이 많은 소프트웨어를 많이 설치했는데 사용하는 사람이 없다는 점이 가장 안타깝습니다.

사실 제가 원하는 건 시간이 지나면 쉬도록 하는 창을 띄워주는 것이에요. 나중에는 내가 직접 만드는 게 좋겠다고 생각했어요. 물론 Python 언어가 선호됩니다.

먼저 시간이 지정된 팝업 창이 필요합니다. 구체적인 코드는 다음과 같습니다.

이 프로그램은 자체 Tkinter를 사용하며 다른 패키지를 설치할 필요가 없습니다.

프로그램의 주요 기능: 1. 시작 후 자동 타이밍 2. 타이밍이 완료되면 팝업 창이 나타납니다(기본 시간은 30분) 3. 확인을 클릭한 다음 타이밍을 다시 시작합니다

프로그램에 몇 가지 문제가 있습니다. 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()

만약 win 상태라면 자동으로 실행하는 방법을 고려해야 할 수도 있습니다.

배치파일을 사용하고 있습니다. 자세한 내용은 다음과 같습니다.

파일명: Rest_python.bat

내용은 간단합니다. 한 줄만 있습니다(파이썬 버전이 여러 개인 경우 수정해주세요):

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을 사용합니다.

파일이 저장된 위치에 따라 배치 파일을 변경해야 합니다.

시작 폴더를 추가하는 것을 잊지 마세요.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.