Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //LINK: https://bit.ly/3iGvcmp
- //File will be .txt
- //CRACKED BY shiro-team
- //ignore code below
- #!/usr/bin/env python3
- from tkinter import *
- from threading import Thread
- from time import sleep
- class Timer(Thread):
- def __init__(self, interval: int, callback: callable):
- super().__init__()
- self.interval = interval
- self.callback = callback
- def run(self):
- while True: # NOTE: bad practice
- for i in range(self.interval):
- print(f"{self.native_id} wait: {i}")
- sleep(1)
- self.callback()
- class TimingFrame(Frame):
- def __init__(self, parent: Tk):
- super().__init__(parent)
- self.timers = []
- self.callbacks = [self.method1, self.method2]
- self.time_interval_holder = IntVar()
- Label(self, text="Time interval: ").grid(row=0, column=0)
- self.time_interval_entry = Entry(self, textvariable=self.time_interval_holder)
- self.time_interval_entry.bind("<Return>", lambda event: self.saveNewTimer())
- self.time_interval_entry.grid(row=0, column=1)
- def saveNewTimer(self):
- _input: int = self.time_interval_holder.get() # assume it's an int
- callback_index = len(self.timers) % 2
- new_timer = Timer(_input, self.callbacks[callback_index])
- new_timer.setDaemon(True) # NOTE: with this you can ensure that all the Threads are going to terminate immediately
- new_timer.start()
- self.timers.append(new_timer)
- def method1(self):
- print("method1!!")
- def method2(self):
- print("method2!!")
- class App(Tk):
- def __init__(self):
- super().__init__()
- self.timing_frame = TimingFrame(self)
- self.timing_frame.pack()
- if __name__ == "__main__":
- main_app = App()
- main_app.mainloop()
Add Comment
Please, Sign In to add comment