Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyQt5.QtCore import QPoint, Qt, QTime, QTimer
- from PyQt5.QtGui import QColor, QPainter, QPolygon,QFont
- from PyQt5.QtWidgets import QApplication, QWidget
- class AnalogClock(QWidget):
- hourHand = QPolygon([
- QPoint(7, 8),
- QPoint(-7, 8),
- QPoint(0, -40)
- ])
- minuteHand = QPolygon([
- QPoint(7, 8),
- QPoint(-7, 8),
- QPoint(0, -70)
- ])
- hourColor = QColor(127, 0, 127)
- minuteColor = QColor(0, 127, 127, 191)
- def __init__(self, parent=None):
- super(AnalogClock, self).__init__(parent)
- timer = QTimer(self)
- timer.timeout.connect(self.update)
- timer.start(1000)
- self.setWindowTitle("Analog Clock")
- self.resize(200, 200)
- def paintEvent(self, event):
- side = min(self.width(), self.height())
- time = QTime.currentTime()
- painter = QPainter(self)
- painter.setRenderHint(QPainter.Antialiasing)
- painter.translate(self.width() / 2, self.height() / 2)
- painter.scale(side / 200.0, side / 200.0)
- painter.setPen(Qt.NoPen)
- painter.setBrush(AnalogClock.hourColor)
- painter.save()
- painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)))
- painter.drawConvexPolygon(AnalogClock.hourHand)
- painter.restore()
- painter.text=str(list(range(1,13)))
- painter.setPen(AnalogClock.hourColor)
- t= range(1,13)
- for i in painter.text:
- l=painter.text.index(i)
- painter.drawLine(88, 0, 96, 0)
- if painter.text:
- painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)))
- painter.drawText(80,100,painter.text[l])
- painter.restore()
- painter.restore()
- painter.setPen(Qt.NoPen)
- painter.setBrush(AnalogClock.minuteColor)
- painter.save()
- painter.rotate(6.0 * (time.minute() + time.second() / 60.0))
- painter.drawConvexPolygon(AnalogClock.minuteHand)
- painter.restore()
- painter.setPen(AnalogClock.minuteColor)
- i=1
- for j in range(60):
- if (j % 5) != 0:
- painter.drawLine(92, 0, 96, 0)
- if __name__ == '__main__':
- import sys
- app = QApplication(sys.argv)
- clock = AnalogClock()
- clock.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement