파이썬 타이머 버튼이 눌렸을 때 시간이 멈추도록
조회수 344회
제가 학교세특 활동으로 타이머를 만들고싶은데요.
지금 시간 카운팅되는거랑 버튼이랑은 만들었는데 버튼이 눌렸을 때 시간이 멈추게하는걸 어떻게 해야하는지 모르겠어요.
배운거 응용하는거라 이미 써논건 최대한 안건드리고 멈추는 기능만 추가할 수 있으면 좋겠는데 가능할까요?
설마 다 뜯어 고쳐야 한다거나 그러진 않겠죠?ㅜㅜ
제 생각엔 클릭버튼 함수에 카운트 멈추는 기능을 추가하면 될거같은데 어떻게 해야할지 모르겠네요.
window = tkinter. Tk()
window.title("스톱워치")
def clickButton():
label1[“text"] = “타이머 멈춤"
cnt = 0
def countUp():
global cnt
cnt = cnt + 1
label2["text"] = cnt
window.after(1000,countUp)
window.geometry ("500×400")
label1 = tkinter.Label (window, text="타이머 작동중", font=(systen" , 25))
label1.place(x=150, y=160)
button1 = tkinter.Button (window, text="STOP!", font=("System", 50), command=clickButton)
button1.place(x=150, y=250)
label2 = tkinter.Label(text="00", font=("Times New Roman" , 80))
label2.pack()
window.after (1000, countUp)
window.mainloop()
1 답변
-
단순하게 무조건 돌아가게 되어있는 after 함수를 글로벌 변수(아래 코드에서는 starter)로 제어하게끔 하면될거같아요. starter가 True 일때만 타이머가 가게끔요! 응용해서 else 부분은 다시 한번 클릭했을때에 대해서 동작하게끔 넣어놨어요. 도움이 되셨으면 좋아요 한번 눌러주세요~!
<코드>
starter = True def clickButton(): global cnt global starter if starter: starter = False label1["text"] = "타이머 멈춤" button1["text"] = "RESUME!" else: starter = True label1["text"] = "타이머 작동중" window.after(1000,countUp) button1["text"] = "STOP!" cnt = 0 def countUp(): global cnt global starter if starter: cnt = cnt + 1 label2["text"] = cnt window.after(1000,countUp)
댓글 입력