PyQt4 – timer.timeout.connect () – не удается найти ссылку

from PyQt4 import QtGui, QtCore from code.pair import Pair from code.breadth_first_search import breadth_first_search import functools class Ghosts(QtGui.QGraphicsPixmapItem): def __init__(self, name): super(Ghosts, self).__init__() self.set_image(name) def chase(self, goal): pos = Pair(self.x(), self.y()) path = breadth_first_search(pos, goal) func = functools.partial(self.move_towards, path) timer = QtCore.QTimer() timer.timeout.connect(func) timer.start(700) def move_towards(self, path): print("in") if path.empty(): return goal = path.get_nowait() self.setPos(goal.first(), goal.second()) 

Когда я timer.timeout.connect() это, он говорит мне, что timer.timeout.connect() – не может найти ссылку, это должно разрешаться, но ничего не происходит, и ничего не происходит, когда я запускаю его. Затем я пытаюсь QtCore.QTimer.singleShot(700, func) вместо указанного выше таймера и работает отлично, но выполняется только один раз (как и должно быть). Все, что я пытался сделать таймер, который выполняется много раз, не срабатывает. Пожалуйста помоги.

    Вы совершили очень распространенную ошибку. Ничто не содержит ссылку на ваш timer , поэтому он удаляется после завершения функции хайза. Замените timer на self.timer .