В моем пользовательском интерфейсе (Qt Designer) есть кнопка «Пуск», кнопка «Стоп» и lcdNumber, который должен отображать секунды между нажатием «Пуск» и «Стоп». Я следовал приведенным там инструкциям: Похоже, не удается получить обратный отсчет pyqt таймер на работу
Но мой timeout
не работает, хотя connect
было предложено мне при написании этой строки: QtCore.QTimer.timeout.connect(self.tick_timer) AttributeError: объект «PyQt4.QtCore.pyqtSignal» не имеет атрибута «connect»
Я также пытался реализовать такие строки (QtCore.QTimer.connect(QtCore.QTimer(), QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("func()"))
) в моей функции update_timer, но это вызывает ошибки (Object::connect: Нет такого слота MainWindow::func() Object::connect: (имя получателя: 'MainWindow')) и Я действительно не понимаю, как использовать сигнал соединения с тайм-аутом.
Если я прокомментирую эту строку «timeout», появится MainWindow, но нажатие кнопки «Start», очевидно, запустит функцию «tick_timer» только один раз, потому что ЖК-дисплей показывает 0:01.
Спасибо за вашу помощь!
from PyQt4 import QtCore, QtGui, uic
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
uic.loadUi('MainWindow.ui', self)
# Buttons
self.QStartButton.clicked.connect(self.start_timer)
self.QStopButton.clicked.connect(self.stop_timer)
# Timer
QtCore.QTimer.timeout.connect(self.tick_timer)
def start_timer(self):
self.now = 0
self.tick_timer()
QtCore.QTimer.start
def update_timer(self):
self.runtime = "%d:%02d" % (self.now/60,self.now % 60)
self.lcdNumber.display(self.runtime)
def tick_timer(self):
self.now += 1
self.update_timer()
def stop_timer(self):
QtCore.QTimer.stop