vrabey
Если не получится, напиши. И если получиться тоже напиши)
from PyQt4 import QtGui from PyQt4 import QtCore import sys import random class X(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.progressBar = QtGui.QProgressBar(self) self.randemTimer = QtCore.QTimer(self) self.connect(self.randemTimer, QtCore.SIGNAL("timeout()"), self.restartTimer) self.randemTimer.start(1000) self.startProgressTimer(1000) def restartTimer(self): value = random.randint(100, 10000) self.randemTimer.setInterval(value) self.startProgressTimer(value) print value def startProgressTimer(self, timerValue): timer = QtCore.QTimer(self.progressBar) self.progressBar.setValue(0) def setValue(): value = self.progressBar.value()+1 if value < self.progressBar.maximum(): self.progressBar.setValue(value) else: timer.stop() self.progressBar.setValue(0) self.progressBar.connect(timer, QtCore.SIGNAL("timeout()"), setValue) timer.start(timerValue/self.progressBar.maximum()) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) Win = X() Win.show() sys.exit(app.exec_())
RodegastДа у не легче чем с QLineTime
Задача легко решается при помощи 2-х таймеров
self.timer.frameChanged.connect(self.progressBar.setValue)
RodegastЯ один насчитал. Просто он должен быть не встроенным, а с добавкой (унаследованным от встроенного).
Задача легко решается при помощи 2-х таймеров:
RodegastА какое у него дефолтное назначение?
Просто QTimeLine (класса QLineTime не существует) обычно используют для другого.
RodegastВстроенный - это QtCore.QTimer() (встроенный в Qt).
Я не знаю что такое встроенный таймер
class Timer(QtCore.QTimer): timeout = None def __init__(self, seconds, parent=None): ...
RodegastЭтот таймер зачем?
1) self.randemTimer = QtCore.QTimer(self)
RodegastА как, например, установить заполнение прогрессбара в течение 5 минут и 25 секунд? У него и start() можно сделать без аргумента.
Зачем тебе для этого отдельный класс делать?
timer = HMSTimer(0, 5, 25) timer.start() timer.stop()