0

I wanna make routine timer in Python. and I use also PyQt5

In summary,

first_step LED1 is on 10 minute

second_step LED1 is off, LED2 is on 5 minute

third_step LED2 is off, LED3 is on 3 minute

and return in first_step.

this routine is do while main Timer is Run.

I using threading.Timer and schedule. Anyone know better idea, please help me.

Here is my code for timer

ort sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.uic import loadUi
import time
import threading
import schedule

            
class MainUI(QMainWindow):
    def __init__(self):
        super(MainUI, self).__init__()
        loadUi('untitled.ui',self)
    
        self.setWindowTitle('test')
        
        self.set_hour = 2
        self.set_minute = 1
        self.set_second = 3
        
        self.btn_start.clicked.connect(self.timer)
#         self.btn_stop.clicked.connect()
    

    def timer(self):
        d_time = str(self.set_hour)+':'+str(self.set_minute)+':'+str(self.set_second)
        
        if self.set_minute >= 0:
            if self.set_second >= 1: 
                self.lcd_time.display(d_time)
                self.set_second -= 1
            elif self.set_minute == 0 and self.set_second == 0 :
                self.set_hour -= 1
                self.set_minute += 59
                self.set_second += 59
                self.lcd_time.display(d_time)
            elif self.set_hour == 0 and self.set_minute == 0 and self.set_second == 0:
                self.timer_stop()
            else:
                self.set_minute -= 1
                self.set_second += 59
                self.lcd_time.display(d_time)
                
        timer = threading.Timer(1,self.timer)
        timer.start()
        
        def timer_stop(self):
            self.timer.cancel()
        
app = QApplication(sys.argv)
widget = MainUI()
widget.show()
app.exec_()

0 Answers0