Pyloid Docs
GithubLanguage
  • 💎What is Pyloid?
  • Getting Started
    • Prerequisites
    • Create Pyloid App
  • Core Concepts
    • Thread Safety
  • API
    • Python (Backend)
      • Pyloid
      • BrowserWindow
      • Monitor
      • TrayEvent
      • Utility Functions
      • RPC
      • Store
    • Javascript (Frontend)
      • Event
      • BaseAPI
      • RPC
  • Guides
    • Load Webview
    • Serve Frontend
    • Calling Python from JS
    • Calling JS from Python
    • Keyboard Shotcuts
    • Notification
    • Tray
    • Timer
    • File Watcher
    • Clipboard
    • Window Position
    • Devtools
    • Window Drag Region
    • Window Radius And Transparent
    • Autostart
    • Production Utils
    • Desktop Monitor
    • File Dialog
    • Splash Screen
Powered by GitBook
On this page
  • Table of Contents
  • Basic Usage
  • Periodic Timers
  • Single-Shot Timers
  • Timer Management
  • Stopping a Timer
  • Checking Timer Activity
  • Checking Remaining Time
  • Changing Timer Interval
  • Precise Timers
  • Advanced Usage
  • Using Lambda Functions
  • Conclusion

Was this helpful?

Edit on GitHub
  1. Guides

Timer

PreviousTrayNextFile Watcher

Last updated 6 months ago

Was this helpful?

PyloidTimer is a convenient timer management class based on PySide6's QTimer. It allows you to easily create and manage various types of timers.

Table of Contents

Basic Usage

First, create a PyloidTimer instance:

from pyloid.timer import PyloidTimer

timer_manager = PyloidTimer()

Periodic Timers

To start a timer that runs periodically, use the start_periodic_timer method:

def print_hello():
    print("Hello!")

# Start a timer that prints "Hello!" every 2 seconds
timer_id = timer_manager.start_periodic_timer(2000, print_hello)
from pyloid.timer import PyloidTimer
from pyloid import  Pyloid

# Create a PyloidTimer instance
app = Pyloid(app_name="Pyloid-App")
timer_manager = PyloidTimer()

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()

Single-Shot Timers

To start a timer that runs only once, use the start_single_shot_timer method:

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)
from pyloid.timer import PyloidTimer
from pyloid import Pyloid

# Create a PyloidTimer instance
app = Pyloid(app_name="Pyloid-App")
timer_manager = PyloidTimer()

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()

Timer Management

Stopping a Timer

# Stop a timer using its ID
timer_manager.stop_timer(timer_id)
from pyloid.timer import PyloidTimer
from pyloid import Pyloid

# Create a PyloidTimer instance
app = Pyloid(app_name="Pyloid-App")
timer_manager = PyloidTimer()

# Start a timer
timer_id = timer_manager.start_periodic_timer(2000, lambda: print("Hello!"))

# Stop a timer using its ID
timer_manager.stop_timer(timer_id)

app.run()

Checking Timer Activity

if timer_manager.is_timer_active(timer_id):
    print("The timer is still running.")
else:
    print("The timer has stopped.")
from pyloid.timer import PyloidTimer
from pyloid import Pyloid

# Create a PyloidTimer instance
app = Pyloid(app_name="Pyloid-App")
timer_manager = PyloidTimer()

# Start a timer
timer_id = timer_manager.start_periodic_timer(2000, lambda: print("Hello!"))

# Check if the timer is active
if timer_manager.is_timer_active(timer_id):
    print("The timer is still running.")
else:
    print("The timer has stopped.")

app.run()

Checking Remaining Time

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.")
from pyloid.timer import PyloidTimer
from pyloid import Pyloid

# Create a PyloidTimer instance
app = Pyloid(app_name="Pyloid-App")
timer_manager = PyloidTimer()

# Start a timer
timer_id = timer_manager.start_periodic_timer(2000, lambda: print("Hello!"))

# Check remaining time
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()

Changing Timer Interval

# Change the timer interval to 3 seconds
timer_manager.set_interval(timer_id, 3000)
from pyloid.timer import PyloidTimer
from pyloid import Pyloid

# Create a PyloidTimer instance
app = Pyloid(app_name="Pyloid-App")
timer_manager = PyloidTimer()

# Start a timer
timer_id = timer_manager.start_periodic_timer(1000, lambda: print("Hello!"))

# Change the timer interval to 3 seconds
timer_manager.set_interval(timer_id, 3000)

app.run()

Precise Timers

For more precise timing, you can use precise timers:

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)
from pyloid.timer import PyloidTimer
from pyloid import Pyloid

# Create a PyloidTimer instance
app = Pyloid(app_name="Pyloid-App")
timer_manager = PyloidTimer()

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()

Advanced Usage

Using Lambda Functions

counter = 0

def count():
    global counter
    counter += 1
    print(f"Counter: {counter}")

timer_id = timer_manager.start_periodic_timer(1000, count)
from pyloid.timer import PyloidTimer
from pyloid import Pyloid

# Create a PyloidTimer instance
app = Pyloid(app_name="Pyloid-App")
timer_manager = PyloidTimer()

counter = 0

def count():
    global counter
    counter += 1
    print(f"Counter: {counter}")

timer_id = timer_manager.start_periodic_timer(1000, count)

app.run()

Conclusion

PyloidTimer is a powerful tool for managing various timing requirements easily. It can be useful in a wide range of situations, from simple periodic tasks to tasks that require precise timing.

Basic Usage
Periodic Timers
Single-Shot Timers
Timer Management
Precise Timers
Advanced Usage