часы с кнопками в python - PullRequest
       9

часы с кнопками в python

0 голосов
/ 02 апреля 2020

Я пытаюсь запрограммировать немного часов, чтобы отслеживать мое рабочее время. Это очень простая программа, которая вычисляет разницу между переменными даты и времени. У меня следующая проблема: Когда я нажимаю кнопку остановки, программа печатает правильное время. Но я хочу напечатать правильное время, а затем сбросить таймер. Но это не сработает, потому что я не могу изменить переменную "startzeit". Можно ли как-нибудь заставить эту работу работать как настоящие часы? спасибо заранее.

from tkinter import *
import datetime

startzeit = datetime.datetime.today()
stoppzeit = datetime.datetime.today()
date = datetime.date.today()


def start():
    global startzeit
    startzeit = datetime.datetime.today()


def stopp():
        stoppzeit = datetime.datetime.today()
        diff = stoppzeit-startzeit
        print(date, ":", diff)


fenster = Tk()
fenster.title("Stechuhr ")
fenster.geometry("170x40")

Start = Button(fenster, text="Start", command=start)
Start.place(x=10, y=10, width=70, height=20)

Stop = Button(fenster, text="Stop", command=stopp)
Stop.place(x=90, y=10, width=70, height=20)

mainloop()

1 Ответ

0 голосов
/ 02 апреля 2020

У меня уже работает. Но вы можете сделать следующее:

from tkinter import *
import datetime

global startzeit

startzeit = datetime.datetime.today()
stoppzeit = datetime.datetime.today()
date = datetime.date.today()


def start():
    global startzeit
    startzeit = datetime.datetime.today()


def stopp():
        global startzeit
        stoppzeit = datetime.datetime.today()
        diff = stoppzeit-startzeit
        diff = date ,":",diff
        label2.config(text=diff)
        print(diff)
        startzeit = stoppzeit


fenster = Tk()
fenster.title("Stechuhr ")
fenster.geometry("210x80")

label1 = Label(text="Zeit", padx=10, pady=5)
label1.place(x=10, y=5, width=70, height=20)

label2 = Label(text="Timediff", padx=10, pady=5)
label2.place(x=10, y=25, width=190, height=20)

Start = Button(fenster, text="Start", command=start)
Start.place(x=10, y=45, width=70, height=20)

Stop = Button(fenster, text="Stop", command=stopp)
Stop.place(x=90, y=45, width=70, height=20)

mainloop()

Что я сделал: я сделал глобальное объявление в начале и в каждой функции, которая использовала глобальное объявление. Это говорит функции, что она должна использовать глобальную версию переменной startzeit.

Редактировать: я добавил startzeit = stoppzeit и другие вещи, чтобы увидеть результат в окне. (Извините не могу комментировать атм)

...