PyloidTimer
PyloidTimer is a convenient timer management class based on PySide6's QTimer. It allows you to easily create and manage various types of timers with thread-safe operations.
Initialization
PyloidTimer
Creates a new PyloidTimer instance for managing timers.
from pyloid.timer import PyloidTimer
timer_manager = PyloidTimer()
Returns
PyloidTimer
A new PyloidTimer instance.Timer Creation
start_periodic_timer
Starts a timer that runs periodically at specified intervals.
from pyloid import Pyloid
from pyloid.timer import PyloidTimer
app = Pyloid(app_name="MyApp", single_instance=True)
timer_manager = PyloidTimer()
########## Usage ##########
def print_hello():
print("Hello!")
# Start a timer that prints "Hello!" every 2 seconds
timer_id = timer_manager.start_periodic_timer(2000, print_hello)
app.run()
Parameters
Prop
Type
Returns
int
Unique timer ID that can be used to control the timer.start_single_shot_timer
Starts a timer that runs only once after the specified delay.
from pyloid import Pyloid
from pyloid.timer import PyloidTimer
app = Pyloid(app_name="MyApp", single_instance=True)
timer_manager = PyloidTimer()
########## Usage ##########
def delayed_message():
print("5 seconds have passed!")
# Start a single-shot timer that prints a message after 5 seconds
timer_id = timer_manager.start_single_shot_timer(5000, delayed_message)
app.run()
Parameters
Prop
Type
Returns
int
Unique timer ID that can be used to control the timer.start_precise_periodic_timer
Starts a high-precision periodic timer for timing-critical applications.
from pyloid import Pyloid
from pyloid.timer import PyloidTimer
app = Pyloid(app_name="MyApp", single_instance=True)
timer_manager = PyloidTimer()
########## Usage ##########
def precise_task():
print("Executing precise task")
# Start a precise periodic timer with 100ms interval
precise_timer_id = timer_manager.start_precise_periodic_timer(100, precise_task)
app.run()
Parameters
Prop
Type
Returns
int
Unique timer ID that can be used to control the timer.Timer Control
stop_timer
Stops a running timer using its ID.
from pyloid import Pyloid
from pyloid.timer import PyloidTimer
app = Pyloid(app_name="MyApp", single_instance=True)
timer_manager = PyloidTimer()
########## Usage ##########
# Stop a timer using its ID
timer_manager.stop_timer(timer_id)
app.run()
Parameters
Prop
Type
Returns
bool
True if timer was stopped successfully, False if timer ID was not found.set_interval
Changes the interval of a running timer.
from pyloid import Pyloid
from pyloid.timer import PyloidTimer
app = Pyloid(app_name="MyApp", single_instance=True)
timer_manager = PyloidTimer()
########## Usage ##########
# Change the timer interval to 3 seconds
timer_manager.set_interval(timer_id, 3000)
app.run()
Parameters
Prop
Type
Returns
bool
True if interval was changed successfully, False if timer ID was not found.Timer Information
is_timer_active
Checks if a timer is currently running.
from pyloid import Pyloid
from pyloid.timer import PyloidTimer
app = Pyloid(app_name="MyApp", single_instance=True)
timer_manager = PyloidTimer()
########## Usage ##########
if timer_manager.is_timer_active(timer_id):
print("The timer is still running.")
else:
print("The timer has stopped.")
app.run()
Parameters
Prop
Type
Returns
bool
True if timer is active, False otherwise.get_remaining_time
Gets the remaining time until a timer fires.
from pyloid import Pyloid
from pyloid.timer import PyloidTimer
app = Pyloid(app_name="MyApp", single_instance=True)
timer_manager = PyloidTimer()
########## Usage ##########
remaining_time = timer_manager.get_remaining_time(timer_id)
if remaining_time is not None:
print(f"{remaining_time}ms left until the timer fires.")
app.run()
Parameters
Prop
Type
Returns
Optional[int]
Remaining time in milliseconds, or None if timer ID is not found.