Управления временем в Python?
Как и сказал Sergey6661313 вам нужно использовать QTimer. Класс QTimer испускает сигнал timeout спустя заданное время. 
Вот пример использования QTimer с QProgressBar. Таймер испускает сигнал timeout каждую секунду, по сигналу вызывается метод on_timer в котором происходит инкрементирование QProgressBar, после заполнения прогресса таймер останавливается.from PyQt4 import QtGui
from PyQt4 import QtCore

class Widget(QtGui.QWidget):
    
    def __init__(self, parent=None):
        super(Widget, self).__init__()
        layout = QtGui.QVBoxLayout(self)
        self.pb = QtGui.QProgressBar()
        self.pb.setMaximum(100)
        self.pb.setMinimum(0)
        self.pb.setValue(0)
        layout.addWidget(self.pb)
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.on_timer)
        self.timer.start(1000)

    def on_timer(self):
        current_value = self.pb.value() + 1
        self.pb.setValue(current_value)
        if current_value == 100:
            self.timer.stop()

if __name__ == '__main__':
    app = QtGui.QApplication([])
    w = Widget()
    w.show()
    app.exec()
в __init__:
self.timer = QtCore.QBasicTimer()
self.timer.start(1000, self)   # 1000 - наша задержка (должна быть в миллисекундах помоему)
и определите метод:
def timerEvent(self, event)
    self.follow.setValue(self.follow.value() - 1)
и да переменная hp не нужна. follow уже содержит переменную доступ к которой осуществляется через value() и setValue(), поэтому плодить сущности незачем.
В кратце QBasicTimer это что-то вроде Qthread котороый каждые  обозначенные миллисекунды вызывает событие timerEvent обозначенного обьекта.