私はPython3でPyQtを使用しています。
私QTimer
の s は、接続するように指示された関数を呼び出していません。isActive()
を返しTrue
、interval()
正常に動作しています。以下のコード (スタンドアロンで動作) は、問題を示しています。スレッドは正常に開始されますが、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_())