2016-10-21 6 views
1

私は実行中の時計プログラムを作ると思っていました。私はそれが欲しいもののために働くこのコードを持っていますが、私はそれを空想的にして新しいウィンドウに出力します。私はメッセージボックスを考えましたが、それは絶えず閉鎖する必要があります。Pythonが別のウィンドウでクロックを実行しています

これを回避する方法はありますか、それともコンソールを使用するだけですか?

x=0 
import datetime 
import time 
while x<10: 
    currentTime=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
    time.sleep(1) 
    print(str(currentTime)) 

EDIT: これは私が今持っているものですが、ウィンドウには、あらゆる場所に行きます。

try: 
    from Tkinter import * 
except ImportError: 
    from tkinter import * 

import datetime 
import time 

x=0 
while x<10: 
    root = Tk() 
    prompt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
    label1 = Label(root, text=prompt, width=len(prompt)) 
    label1.pack() 

    def close_after_1s(): 
     root.destroy() 

    root.after(1000, close_after_1s) 
    root.mainloop() 
+1

新しいウィンドウを開く場合は、TkinterやQTなどのGUIツールキットについて学びたいと思っています – ForceBru

+0

tkinterを使って1秒後に自己消滅するメッセージボックスを作成しましたが、これはクロックに多すぎるCPUを使用します –

+0

howいくつかのラベルでウィンドウを作成し、現在の時間でラベルを更新することについては? – ForceBru

答えて

2

Tkのポイントがありません。全体がループ(したがってメインループ)であり、あなたは破壊し続けて新しいウィンドウを作成します。したがって、すべての場所で。

私はあなただけですべての秒を更新するために何かをしたいと思う:

from Tkinter import Tk,StringVar,Label 
import datetime 

def update(): 
    global prompt,root 
    prompt.set(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) 
    root.after(1000, update) 

root = Tk() 
prompt = StringVar() 
label1 = Label(root, textvar=prompt, width=len(prompt.get())) 
label1.pack() 
update() 
root.mainloop() 

と私の提案は、クラスでこのすべてを置くことです。 Googleのいくつかの例があります。

関連する問題