2016-12-16 9 views
0

현재 Python 3.x 프로젝트에서 작업 중입니다. 교통 신호등 등으로 간단한 사거리 시뮬레이션을해야합니다. 지금 당장 유일한 문제는 내가 전혀 알지 못한다는 것입니다. 길을 측정하여 신호등을 적절하게 변경하는 데 사용합니다. 시뮬레이션이 시작되고 창문이 닫힐 때까지 무한히 계속 진행되는 가상 타이머를 만들 수있는 방법이 있습니까? 나는 time이나 timeit 모듈을 사용하는 것을 고려하고있다. 그러나 나는 여기서 약간 잃어버린다.신호등 시뮬레이션의 타이머

미리 감사드립니다.

+0

[예] (https://docs.python.org/3.6/library/time.html). 처음에는'time.time()'또는'time.clock()'을 사용하여 초기 시간을 가져 와서 이것을 사용하여 윈도우가 닫히기 전에 두 함수 중 하나를 호출하여 현재 시뮬레이션 시간을 계산할 수 있습니다. – pbreach

+1

@pbreach 앤서? 그것은 단지 의견 일뿐입니다. – MeanGreen

+0

이것은 [duplicate] (http://stackoverflow.com/questions/415511/how-to-get-current-time-in-python)이기 때문에 [duplicate] (http://stackoverflow.com/ question/7370801/measure-time-elapsed-in-python), [duplicate] (http://stackoverflow.com/questions/3620943/measuring-elapsed-time-with-the-time-module)의 ... 당신은 아이디어를 얻습니다. – pbreach

답변

1

태그 tkinter을 포함 했으므로 매우 잘 작동하는 tkinter 특정 솔루션이 있습니다. 모든 위젯에서 사용할 수있는 after 메소드를 사용하면 향후 이벤트가 발생하도록 예약 할 수 있습니다.

가장 간단한 경우 주어진 간격에서 다른 기능을 실행할 수있는 기능을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

import tkinter as tk 

def run_periodically(func, ms): 
    func() 
    root.after(ms, run_periodically, func, ms) 

def tick(): 
    global count 
    count += 1 
    tick_label.configure(text="count: %d" % count) 


count = 0 
root = tk.Tk() 
tick_label = tk.Label(root, text="") 
tick_label.pack(padx=20, pady=20) 

run_periodically(tick, 1000) 

root.mainloop() 

물론 일정에서 호출되는 대신 필요한 작업을 예약 할 수도 있습니다. 예를 들어 표시등이 빨간색으로 바뀌면 after을 사용하여 전원을 끄고 녹색을 켭니다. 그런 다음 after을 사용하여 녹색을 끄고 노란색을 켜는 등의 작업을 할 수 있습니다. 이것은 숙제로 들리므로 예제를 제공하지 않겠습니다.

+0

정말 고마워요, 제가 찾고 있었던 바로 그 것입니다! – Jonnyolsen1