PyQt5でスリープ(遅延)を実行する方法


  1. timeモジュールを使用する方法:

    import time
    # 3秒間スリープする
    time.sleep(3)
  2. QTimerを使用する方法:

    from PyQt5.QtCore import QTimer
    # QTimerを作成し、3秒間の遅延を設定する
    timer = QTimer()
    timer.setInterval(3000)
    timer.setSingleShot(True)
    # タイマーがタイムアウトしたときに実行される関数を定義する
    def timeout():
    print("タイマーがタイムアウトしました。")
    # タイマーのタイムアウトイベントに関数を接続する
    timer.timeout.connect(timeout)
    # タイマーを開始する
    timer.start()
    # イベントループを開始する
    # これにより、タイマーのタイムアウトイベントが処理されます
    import sys
    from PyQt5.QtWidgets import QApplication
    app = QApplication(sys.argv)
    sys.exit(app.exec_())
  3. QThreadを使用する方法:

    from PyQt5.QtCore import QThread
    # スリープを行うためのサブクラス化されたスレッドを作成する
    class SleepThread(QThread):
    def __init__(self, duration):
        super().__init__()
        self.duration = duration
    def run(self):
        self.sleep(self.duration)
    # スレッドを作成し、3秒間スリープするように設定する
    thread = SleepThread(3000)
    # スレッドを開始する
    thread.start()
    # スレッドが終了するまで待機する
    thread.wait()