2016-05-14 13 views
-2

私はpythonでフルスクリーンクロックを作成しようとしています。これはtkinterを使ってフルスクリーンを表示します。Pythonフルスクリーンクロックとtkinter

これまでのところ、フルスクリーンのtkinterウィンドウを作成し、strftimeを使って時刻を表示するために、2ビットのコードがあります。

2ビットのコードをまとめてマージしようとすると、シェルでクロックが実行されるか、時刻を表示するが更新されないtkinterウィンドウが表示されます。

時刻をtkinterウィンドウに表示し、0.5秒ごとに時刻を更新する必要があります。

私が持っているものは以下の通りです。 ご迷惑をおかけして申し訳ございません。 ジョン

import sys 
if sys.version_info[0] == 2: 
    from Tkinter import * 
    import Tkinter as tk 
else: 
    from tkinter import * 
    import tkinter as tk 

import time 
from time import * 
import os 
from os import * 

clock = tk.Tk() # make it cover the entire screen 
w, h = clock.winfo_screenwidth(), clock.winfo_screenheight() 
clock.overrideredirect(1) 
clock.geometry("%dx%d+0+0" % (w, h)) 
clock.focus_set() # <-- move focus to this widget 
clock.bind("<Escape>", lambda e: e.widget.quit()) 

###############this is the problem... 

while True: 
    time = strftime("%A, %d %B %Y %X") 
    sleep (0.5) 
    #print (time) 

###############this is the problem... 

text = Text(clock) 
text.insert(INSERT, time) 
text.pack() 
clock.mainloop() 
+0

http://stackoverflow.com/questions/2400262/how-to-create-a-timer-using-tkinter –

答えて

0

after機能を使用してください。

import sys 
if sys.version_info[0] == 2: 
    from Tkinter import * 
    import Tkinter as tk 
else: 
    from tkinter import * 
    import tkinter as tk 

from time import * 
import os 
from os import * 

clock = tk.Tk() # make it cover the entire screen 
w, h = clock.winfo_screenwidth(), clock.winfo_screenheight() 
clock.overrideredirect(1) 
clock.geometry("%dx%d+0+0" % (w, h)) 
clock.focus_set() # <-- move focus to this widget 
clock.bind("<Escape>", lambda e: e.widget.quit()) 

time = strftime("%A, %d %B %Y %X") 

def getTime(): 
    time = strftime("%A, %d %B %Y %X") 
    text.delete('1.0', END)     #delete everything 
    text.insert(INSERT, time)    #inser new time 
    clock.after(500, getTime)    #wait 0.5 sec and go again 

text = Text(clock) 
text.insert(INSERT, time) 
text.pack() 
clock.after(500, getTime) 
clock.mainloop() 
+0

うーん光沢を見てみましょう。私はそれが好きです。ありがとう。次の段階では、書式設定や、日付に基づいて週番号を表示するなどのいくつかの部分を混乱させることです。クリスマスで終わるかもしれません... :-p – Jon

+0

私はあなたが管理すると確信しています。 BTW。あなたが答えが好きなら、それを受け入れます。 =) –

+0

私はそれを受け入れたと思う。初めて私は私の自尊心を呑み込んで、stackoverflowを使用しなければなりませんでした。 – Jon