2016-04-23 100 views
1

即时通讯新的初学者在python和im试图让用户输入任何时间,并与时间进行比较。当我尝试下面的编码时钟的结果没有显示确切的time.instead它打印不同的价值。很感激,如果你能帮助。如何比较确切的时间与python进入时间

from Tkinter import* 
from time import sleep 
import time 
import serial 
root=Tk() 
time1 = '' 
clock = Label(font=('times', 20, 'bold'), bg='pink',fg='red') 
print(clock) 
clock.pack(fill=X,expand=1) 
label=Label(text="Add New Time") 
time_entry = Entry() 
label.pack() 
time_entry.pack() 
def tick(): 
    global time1 
    time2 = time.strftime('%H: %M') 
    if time2 != time1: 
     time1 = time2 
     clock.config(text=time2) 
    clock.after(200, tick) 
def tick2(): 
    if clock == time_entry.get(): 
     print("Correct") 
    else: 
     print("Wrong") 
    root.destroy() 
button = Button(root,text="submit",command=tick2) 
button.pack() 
tick() 
root.mainloop() 

the red which i rounded is the value that dont show the exact time

+0

您在这里没有使用PyGTK +。因此,我删除了该标签。 – zondo

回答

1

如果我得到你的权利,问题是,你正试图Label转换为字符串表示这里:print(clock)。虽然你想得到它的属性是指它的文本内容,这是'text'。所以,你需要做的是使用要么得到的属性:

print(clock['text']) 

print(clock.cget('text')) 

而且,在这里:

def tick2(): 
    if clock == time_entry.get(): 
     print("Correct") 
    else: 
     print("Wrong") 
    root.destroy() 

你可能要比较字符串,所以它是:

if clock['text'] == time_entry.get(): 
     print("Correct") 
    else: 
     print("Wrong") 
    root.destroy() 

PS time.strftime('%H: %M')会给你带来空间的时间,例如'11:11'而不是'11:11',所以当比较这些字符串时,对于有和没有空格的字符串,它将返回false。

+0

@fathyeah,不客气! )您可能希望将此答案标记为解决方案,因为它有所帮助。 – Nikita