Найти - Пользователи
Полная версия: Таймер
Начало » Python для новичков » Таймер
1
3dpython
Решил сделать для себя таймер который отсчитывает заданное время и показывает его от 0.
Получился вот такой код.
Хотел заменить sleep на threading но пока не вышло.
Хочу узнать можно было бы сделать это как то проще?
import datetime
import time
point_time = datetime.datetime.now()
p_hour = point_time.hour
p_minute = point_time.minute
p_second = point_time.second
ts=p_second+p_minute*60+p_hour*60*60
def timer(se, mt=0,ht=0):
    now_time = datetime.datetime.now()
    now_hour = now_time.hour
    now_minute = now_time.minute
    now_second = now_time.second
    tn=now_hour*60*60+now_minute*60+now_second+50+365+3600+3600 #цифры добавленны для теста таймера
    dt=tn-se
    print (dt)
    if dt>59:
        st=dt-(dt//60)*60
        mt=mt+dt//60
        print (mt)
    if mt>59:
        ht=ht+mt//60
        mt=mt-(mt//60)*60
        print(ht ,mt,st)
        
i=100  #время в секундах сколько отсчитать
while i>0:
    i=i-1
    time.sleep(1)
    timer(ts)
reclosedev
3dpython
Хотел заменить sleep на threading но пока не вышло.
Хочу узнать можно было бы сделать это как то проще?
import datetime
from threading import Timer
 
def tick(started=None):
    Timer(1.0, tick, args=(started,)).start()
    elapsed = datetime.datetime.now() - started
    print str(elapsed)
 
tick(datetime.datetime.now())
odnochlen
А не знатный костыль ли? Что, если tick будет выполняться дольше, чем интервал?
3dpython
Запустил этот код в IDLE. Не выходит по клавишам cntr+C. И к секундам в конце добавилось 0,01.
3dpython
Решил попробовать вывести его в gui. Используя задержку через after. Но выходит какойто глюк.
решил просто упростить код. через return Тоже глючит.

from tkinter import *
root=Tk()
x=0
def la(x):
    x=x+1
    lab['text'] = x
    lab.after(1000, la(x))
lab=Label(root, text=x)
lab.pack()
lab.after(500, la(x))
root.mainloop()

вопросы такие. Вообще как то так можно сделать что бы он заработал.? или Надо например функцию выносить в отдельный класс и уже вызвать его. Или как то подругому это делается?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB