1

私はPython3でPyQtを使用しています。

QTimerの s は、接続するように指示された関数を呼び出していません。isActive()を返しTrueinterval()正常に動作しています。以下のコード (スタンドアロンで動作) は、問題を示しています。スレッドは正常に開始されますが、timer_func()関数は呼び出されません。コードのほとんどはボイラープレート PyQT です。私が知る限り、ドキュメントに従ってこれを使用しています。イベントループのあるスレッドにあります。何か案は?

import sys
from PyQt5 import QtCore, QtWidgets

class Thread(QtCore.QThread):
    def __init__(self):
        QtCore.QThread.__init__(self)

    def run(self):
        thread_func()


def thread_func():
    print("Thread works")
    timer = QtCore.QTimer()
    timer.timeout.connect(timer_func)
    timer.start(1000)
    print(timer.remainingTime())
    print(timer.isActive())

def timer_func():
    print("Timer works")

app = QtWidgets.QApplication(sys.argv)
thread_instance = Thread()
thread_instance.start()
thread_instance.exec_()
sys.exit(app.exec_())
4

1 に答える 1