일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- MFC
- 안드로이드 파이어베이스 facebook
- OpenCV 픽셀
- 안드로이드 스튜디오
- MFC 채팅
- c#
- OpenCV 이미지
- MFC TCP/IP
- 코틀린
- c++ ifstream
- 안드로이드
- MFC 채팅 프로그램
- OpenCV pixel
- Kotlin
- MFC 채팅 예제
- OpenCV 흰색 픽셀
- OpenCV IMAGE
- 안드로이드 스튜디오 알람
- C++ 채팅
- Python
- MFC 소켓 프로그래밍
- 안드로이드 firebase 회원가입
- OpenCV 검은색 픽셀
- c++ 쓰레드
- 안드로이드 Firebase
- Android 알람 앱
- 안드로이드 데이터베이스
- OpenCV 이미지 처리
- c++ ofstream
- 파이썬
- Today
- Total
개발자 승학
파이썬 알람 만들기(pygame, tkinter) 본문
파이썬으로 만드는 간단한 알람프로그램입니다.
pygame 라이브러리에는 음악을 재생시키는 기능이 있습니다.
tkinter은 GUI입니다.
파이썬은 3.6버젼입니다.
우선 결과를 보여드릴게요!
결과물입니다.
시간과 분을 다음과 같은 형식으로 입력한 후 알람 설정을 누르면 정해진 시간에 알람음이 울리게 됩니다.
[main.py]
# 알람음을 재생하기 위한
# wave와 pygame 헤더를 추가합니다.
import wave
import pygame
# 현재 시간을 1초단위로 가져오기 위한 getCurrentTime 모듈
import getCurrentTime
import threading
# 그래픽 사용자 인터페이스(GUI)를 사용하기 위한 모듈
from tkinter import *
from tkinter import ttk
# 파일 경로 지정
file_path = 'I:/mp3/alarm.wav'
file_wav = wave.open(file_path)
# TK 클래스의 생성자 호출
window = Tk()
str_hour = StringVar()
str_minute = StringVar()
str_hour.set(0)
str_minute.set(0)
# pygame으로 노래를 재생하면 delay가 생깁니다.
# delay를 없애고 원래의 노래 재생 속도로 재생합니다.
frequency = file_wav.getframerate()
pygame.mixer.init(frequency=frequency)
pygame.mixer.music.load(file_path)
# 현재시간을 계속 가져옵니다.
getCurrentTime.TaskCurrentTime()
# alarmFlag = 0 ==> alarm종료상태
# alarmFlag = 1 ==> alarm설정상태
alarmFlag = 0
def alarm_On():
# 알람음을 재생합니다.
pygame.mixer.music.play()
def alarm_Off():
# 알람음을 중지합니다.
pygame.mixer.music.stop()
# 현재시간과 알람시간을 계속 비교합니다.
def CheckTime():
global alarmFlag
timer = threading.Timer(3,CheckTime)
timer.start()
realTime_Hour = getCurrentTime.hour
realTime_Minute = getCurrentTime.minute
myHour = int(str_hour.get())
myMinute = int(str_minute.get())
if(realTime_Hour == myHour and realTime_Minute == myMinute and alarmFlag == 1):
timer.cancel()
print(alarmFlag)
alarm_On()
if(alarmFlag == 0):
print("알람음 종료합니다.")
alarm_Off()
class MyAlarm:
def __init__(self):
pass
def alarmSet(self):
global alarmFlag
alarmFlag = 1
CheckTime()
def alarmReset(self):
global alarmFlag
alarmFlag = 0
CheckTime()
window.geometry("350x150+150+50")
myAlarm = MyAlarm()
la = Label(window, text="시간 입력 ex 오전 8시 ==> 8 , 오후8시 ==> 20")
la.grid(column = 0 , row = 0)
textbox = ttk.Entry(window,width=10,textvariable = str_hour)
textbox.grid(column = 1 , row = 0)
la = Label(window, text="분 입력 ex 8분 ==> 8 , 58분 ==> 58")
la.grid(column = 0 , row = 1)
textbox2 = ttk.Entry(window,width=10,textvariable = str_minute)
textbox2.grid(column = 1 , row = 1)
btn_On = Button(window, text="알람설정", command=myAlarm.alarmSet)
btn_On.place(x=100,y=100)
btn_Off = Button(window, text="알람해제", command=myAlarm.alarmReset)
btn_Off.place(x=200,y=100)
window.mainloop()
[현재 시간을 가져옴.py]
import threading
from datetime import datetime
hour = ""
minute = ""
end = False
def TaskCurrentTime():
now = datetime.now()
global end
global hour
global minute
if end:
return
timer = threading.Timer(1,TaskCurrentTime)
timer.start()
hour = now.hour
minute = now.minute
print("현재시간은 ", int(hour) , "시", int(minute), "분 입니다,")
우선 전체적인 코드입니다.
pygame을 추가하기 위해서는 pygame 라이브러리를 설치 하셔야합니다.
file_path = 'I:/mp3/alarm.wav' 여기에는 wav용 음악파일이 위치한 곳을 적어주시면 됩니다.
# pygame으로 노래를 재생하면 delay가 생깁니다.
# delay를 없애고 원래의 노래 재생 속도로 재생합니다.
frequency = file_wav.getframerate()
pygame.mixer.init(frequency=frequency)
pygame.mixer.music.load(file_path)
==> pygame을 이용해서 wav파일을 재생시키면 노래가 엄청 느리게 재생됩니다.
원래 속도로 재생하기 위해서 위와 같이 추가하시면 됩니다.
timer = threading.Timer(1,TaskCurrentTime) ==> 1초 단위로 TaskCurrentTime() 함수를 반복적으로 호출합니다.
'it > python(파이썬)' 카테고리의 다른 글
파이썬 리스트(튜플,셋,딕셔너리,문자열) (0) | 2018.05.27 |
---|---|
파이썬(함수) (0) | 2018.04.19 |
파이썬(반복문, 구구단 출력,구구단 옆으로 출력) (0) | 2018.04.19 |
파이썬(리스트(list)) (0) | 2018.04.14 |
파이썬 (print,변수,자료형) (0) | 2018.04.09 |