2016-01-08 4 views
3

Я очень новичок в python, и я пытаюсь сделать небольшой проект для себя, но я не понимаю, как использовать начальную переменную времени из функции start в функции остановки, где я могу с ней справиться , Это мой код в настоящее время:Как измерить прошедшее время между нажатием кнопок в python с помощью tkinter?

import time 
import Tkinter 
import tkMessageBox 

top = Tkinter.Tk() 

def start_time(): 
    tkMessageBox.showinfo("Timer", "The timer will now begin") 
    initial = time.time() 
    return initial 

def stop_time(initial): 
    final = time.time() 
    tkMessageBox.showinfo("Timer", final - initial) 

Start = Tkinter.Button(top, text ="Start", command = start_time) 
Stop = Tkinter.Button(top, text ="Stop", command = stop_time) 
Start.pack() 
Stop.pack() 
top.mainloop() 

ответ

2

Ваши функции должны согласовываться с общим местом для общих данных. Для этого простого примера глобальное пространство имен модуля является хорошим выбором. Все, что вам нужно сделать, это добавить global initial к функциям, которые его обновляют. Для больших проектов вы можете перемещаться к объектам, в которых хранятся переменные и функции, которые его обновляют, но это хорошо для ваших целей.

import time 
import Tkinter 
import tkMessageBox 

initial = 0 

top = Tkinter.Tk() 

def start_time(): 
    global initial 
    tkMessageBox.showinfo("Timer", "The timer will now begin") 
    initial = time.time() 
    return initial 

def stop_time(): 
    # you could check for initial == 0 and display an error 
    final = time.time() 
    tkMessageBox.showinfo("Timer", final - initial) 

Start = Tkinter.Button(top, text ="Start", command = start_time) 
Stop = Tkinter.Button(top, text ="Stop", command = stop_time) 
Start.pack() 
Stop.pack() 
top.mainloop()