2016-12-16 7 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

これは[複製](http://stackoverflow.com/questions/415511/how-to-get-current-time-in-python)の[duplicate](http://stackoverflow.com/質問/ 7370801/measure-time-elapsed-in-python)、[重複](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

関連する問題