from PySide2.QtCore import QTimer def timer_handler(): print("Timer signal received") timer = QTimer() timer.timeout.connect(timer_handler) timer.start(1000)
from PySide2.QtCore import QTimer, Qt from PySide2.QtGui import QPainter, QBrush, QColor from PySide2.QtWidgets import QApplication, QLabel class ClockWidget(QLabel): def __init__(self): super().__init__() self.setAlignment(Qt.AlignCenter) self.timer = QTimer(self) self.timer.timeout.connect(self.update) self.timer.start(1000) def paintEvent(self, event): painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) painter.translate(self.width() / 2, self.height() / 2) painter.scale(min(self.width(), self.height()) / 200, min(self.width(), self.height()) / 200) pen = painter.pen() pen.setWidthF(1) painter.setPen(pen) for i in range(12): painter.drawLine(80, 0, 100, 0) painter.rotate(30) now = QTime.currentTime() hour = now.hour() minute = now.minute() second = now.second() pen.setColor(QColor(0, 0, 0, 200)) painter.setPen(pen) painter.setBrush(QBrush(QColor(255, 255, 255, 200))) painter.drawEllipse(-90, -90, 180, 180) pen.setColor(QColor(0, 0, 0, 255)) painter.setPen(pen) painter.drawLine(0, 0, 60, -40 * hour) painter.rotate(6 * minute) painter.drawLine(0, 0, 80, -60) painter.rotate(6 * second) painter.setPen(QColor(255, 0, 0, 255)) painter.drawLine(0, 0, 80, -60) if __name__ == '__main__': app = QApplication([]) clock = ClockWidget() clock.resize(200, 200) clock.show() app.exec_()Package Library: PySide2