2016-10-21 2 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)) 

편집 : 이 내가 지금 무엇을 가지고 있지만 윈도우가 사방에 간다.

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의 요점을 놓치고 있습니다. 전체가 루프 (그러므로 mainloop)이고 당신은 계속 파괴하고 새 창을 만듭니다. 그러므로 모든 곳에서.

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은 몇 가지 예를 제공합니다.

관련 문제