2016-04-23 3 views
1

ich bin ein neuer Anfänger in Python und ich versuche, den Benutzer zu jeder Zeit eingeben und vergleichen Sie es mit der Zeit zu sein.Wenn ich versuche, die Codierung unten.Das Ergebnis der Uhr Die genaue Zeit wurde nicht angezeigt. Stattdessen druckt es den anderen Wert. Sehr geschätzt, wenn Sie helfen können.wie die genaue Zeit mit der Eingabe von Zeit in Python zu vergleichen

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

Sie verwenden PyGTK + hier nicht. Daher habe ich dieses Tag entfernt. – zondo

Antwort

1

Wenn ich Sie recht verstehe, ist das Problem, dass Sie Label zur String-Darstellung hier zu konvertieren versuchen: print(clock). Während Sie wollen, ist es Attribut bezieht sich auf seinen Textinhalt, der 'text' ist. Also, was Sie tun müssen, ist das Attribut erhalten entweder von:

print(clock['text']) 

oder

print(clock.cget('text')) 

Auch hier:

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

Sie wahrscheinlich Strings vergleichen wollen, so ist es:

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

PS time.strftime('%H: %M') gibt Ihnen Zeit mit einem Leerzeichen, z.B. '11: 11 'und nicht '11: 11'. Wenn Sie also Strings wie diese vergleichen, wird für Strings mit und ohne Leerzeichen der Wert false zurückgegeben.

+0

@fathyeah, Sie sind herzlich willkommen!) Vielleicht möchten Sie diese Antwort als eine Lösung markieren, da es geholfen hat. – Nikita