Python. PyQt5. QTimer
Как называется сигнал который постоянно генерирует QTimer?
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Класс
QTimerпредоставляет высокоуровневый интерфейс программирования для таймеров.Чтобы использовать его, создайте
QTimer, подключите его сигналtimeout()к соответствующим слотам и вызовитеstart(). С этого момента он будет излучать сигналtimeout()с постоянными интервалами.
QTimer::timeout()
Этот сигнал испускается, когда таймер истекает.
Примечание: это частный сигнал. Он может использоваться в сигнальных соединениях, но не может излучаться пользователем.
QTimer::isActive() const
Возвращает
true, если таймер работает (в ожидании); в противном случае возвращаетfalse.
import sys
from PyQt5.Qt import *
class MyGui(QWidget):
def __init__(self):
super().__init__()
self.label = QLabel()
self.btnStartStop = QPushButton('Start Timer')
self.btnStartStop.clicked.connect(self.on_off_timer)
self.btnIsActive = QPushButton('Timer isActive?')
self.btnIsActive.clicked.connect(self.timer_is_active)
layout = QGridLayout(self)
layout.addWidget(self.label, 0, 0, 1, 2, alignment=Qt.AlignCenter)
layout.addWidget(self.btnStartStop, 1, 0)
layout.addWidget(self.btnIsActive, 1, 1)
self.timer = QTimer(self)
self.timer.setInterval(1000)
self.timer.timeout.connect(self.displayTime) # <---
def displayTime(self):
self.label.setText(QDateTime.currentDateTime().toString())
def on_off_timer(self):
if self.btnStartStop.text() == 'Start Timer':
self.timer.start()
self.btnStartStop.setText('Stop Timer')
else:
self.timer.stop()
self.btnStartStop.setText('Start Timer')
def timer_is_active(self):
if self.timer.isActive():
print(f'{self.timer.isActive()} <- таймер работает!')
else:
print(f'{self.timer.isActive()} <- таймер НЕ работает.')
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setFont(QFont("Times", 12, QFont.Bold))
gui = MyGui()
gui.show()
sys.exit(app.exec_())

