【Python】Tkinter에 의한 60행으로 만드는 GUI 앱 「스톱워치」
16039 단어 GUITkinter신인 프로그래머 응원Python3파이썬
소개
안녕하세요.
이번에는 「스톱워치」를 만들어 가고 싶습니다.
완성하면 이런 느낌으로 움직입니다!
환경
스톱워치 제작
가져오기
사용할 라이브러리는 다음 두 가지입니다.
import tkinter as tk
import time
창 만들기
import tkinter as tk
import time
class Application(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
master.geometry("300x150")
master.title("ストップウォッチ")
master.config(bg="black")
def main():
win = tk.Tk()
app = Application(master = win)
app.mainloop()
if __name__ == "__main__":
main()
이 프로그램으로 창을 만들어갑니다.
사이즈는 300×150입니다. 제목 이름은 스톱워치입니다. 배경색을 검정색으로 합니다.
자세한 내용은 【Python】Tkinter를 사용한 병아리(클래스화 기법) 문서를 참조하십시오.
완성된 프로그램
스톱워치.pyimport tkinter as tk
import time
class Application(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
master.geometry("300x150")
master.title("ストップウォッチ")
master.config(bg="black")
self.startTime=time.time()
self.stopTime=0.0
self.elapsedTime=0.0
self.playTime=False
self.canvas = tk.Canvas(master,width=290,height=80,bg="skyblue")
self.canvas.place(x=3,y=10)
tk.Button(master,text="リセット",command=self.resetButtonClick,width=10).place(x=10, y=110)
tk.Button(master,text="スタート",command=self.startButtonClick,width=10).place(x=110, y=110)
tk.Button(master,text="ストップ",command=self.stopButtonClick,width=10).place(x=210, y=110)
master.after(50,self.update)
def startButtonClick(self):
if not self.playTime:
self.startTime=time.time()-self.elapsedTime
self.playTime=True
def stopButtonClick(self):
if self.playTime:
self.stopTime=time.time()-self.startTime
self.playTime=False
def resetButtonClick(self):
self.startTime=time.time()
self.stopTime=0.0
self.elapsedTime=0.0
self.playTime=False
def update(self):
self.canvas.delete("Time")
if self.playTime:
self.elapsedTime=time.time()-self.startTime
self.canvas.create_text(280,40,text=round(self.elapsedTime,1),font=("Helvetica",40,"bold"),fill="black",tag="Time",anchor="e")
else:
self.canvas.create_text(280,40,text=round(self.stopTime,1),font=("Helvetica",40,"bold"),fill="black",tag="Time",anchor="e")
self.master.after(50,self.update)
def main():
win = tk.Tk()
#win.resizable(width=False, height=False) #ウィンドウを固定サイズに
app = Application(master=win)
app.mainloop()
if __name__ == "__main__":
main()
여기가 완성된 프로그램입니다.
만들면서의 감상입니다만, 스타트하는 시간(이 프로그램이라고 startTime)이 중요하다고 생각했습니다. 알고리즘을 잘 모르는 경우 startTime의 값은 지금 무엇입니까? , 그 변화를 잘 봐 가면 이해할 수 있지 않을까 생각합니다!
결론
이상으로 「스톱워치」는 완성됩니다.
여기까지 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(【Python】Tkinter에 의한 60행으로 만드는 GUI 앱 「스톱워치」), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/michimichix521/items/76234e7a991ab92e6fb3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import tkinter as tk
import time
import tkinter as tk
import time
class Application(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
master.geometry("300x150")
master.title("ストップウォッチ")
master.config(bg="black")
def main():
win = tk.Tk()
app = Application(master = win)
app.mainloop()
if __name__ == "__main__":
main()
import tkinter as tk
import time
class Application(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
master.geometry("300x150")
master.title("ストップウォッチ")
master.config(bg="black")
self.startTime=time.time()
self.stopTime=0.0
self.elapsedTime=0.0
self.playTime=False
self.canvas = tk.Canvas(master,width=290,height=80,bg="skyblue")
self.canvas.place(x=3,y=10)
tk.Button(master,text="リセット",command=self.resetButtonClick,width=10).place(x=10, y=110)
tk.Button(master,text="スタート",command=self.startButtonClick,width=10).place(x=110, y=110)
tk.Button(master,text="ストップ",command=self.stopButtonClick,width=10).place(x=210, y=110)
master.after(50,self.update)
def startButtonClick(self):
if not self.playTime:
self.startTime=time.time()-self.elapsedTime
self.playTime=True
def stopButtonClick(self):
if self.playTime:
self.stopTime=time.time()-self.startTime
self.playTime=False
def resetButtonClick(self):
self.startTime=time.time()
self.stopTime=0.0
self.elapsedTime=0.0
self.playTime=False
def update(self):
self.canvas.delete("Time")
if self.playTime:
self.elapsedTime=time.time()-self.startTime
self.canvas.create_text(280,40,text=round(self.elapsedTime,1),font=("Helvetica",40,"bold"),fill="black",tag="Time",anchor="e")
else:
self.canvas.create_text(280,40,text=round(self.stopTime,1),font=("Helvetica",40,"bold"),fill="black",tag="Time",anchor="e")
self.master.after(50,self.update)
def main():
win = tk.Tk()
#win.resizable(width=False, height=False) #ウィンドウを固定サイズに
app = Application(master=win)
app.mainloop()
if __name__ == "__main__":
main()
이상으로 「스톱워치」는 완성됩니다.
여기까지 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(【Python】Tkinter에 의한 60행으로 만드는 GUI 앱 「스톱워치」), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/michimichix521/items/76234e7a991ab92e6fb3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)