summaryrefslogtreecommitdiffstats
path: root/examples/aclock.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/aclock.py')
-rwxr-xr-xexamples/aclock.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/examples/aclock.py b/examples/aclock.py
new file mode 100755
index 0000000..66283ef
--- /dev/null
+++ b/examples/aclock.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+
+import sys
+from python_tqt.qt import *
+
+def TQMIN(x, y):
+ if y > x: return y
+ return x
+class AnalogClock(TQWidget):
+ def __init__(self, *args):
+ TQWidget.__init__(*(self,) + args)
+ self.time = TQTime.currentTime()
+ internalTimer = TQTimer(self)
+ self.connect(internalTimer, SIGNAL("timeout()"), self.timeout)
+ internalTimer.start(5000)
+
+ def timeout(self):
+ new_time = TQTime.currentTime()
+ if new_time.minute() != self.time.minute():
+ self.update()
+
+ def paintEvent(self, qe):
+ if not self.isVisible():
+ return
+ self.time = TQTime.currentTime()
+
+ pts = TQPointArray()
+ paint = TQPainter(self)
+ paint.setBrush(self.foregroundColor())
+
+ cp = TQPoint(self.rect().center())
+ d = TQMIN(self.width(), self.height())
+ matrix = TQWMatrix()
+ matrix.translate(cp.x(), cp.y())
+ matrix.scale(d/1000.0, d/1000.0)
+
+ h_angle = 30*(self.time.hour()%12 - 3) + self.time.minute()/2
+ matrix.rotate(h_angle)
+ paint.setWorldMatrix(matrix)
+ pts.setPoints([-20,0,0,-20,300,0,0,20])
+ paint.drawPolygon(pts)
+ matrix.rotate(-h_angle)
+
+ m_angle = (self.time.minute()-15)*6
+ matrix.rotate(m_angle)
+ paint.setWorldMatrix(matrix)
+ pts.setPoints([-10,0,0,-10,400,0,0,10])
+ paint.drawPolygon(pts)
+ matrix.rotate(-m_angle)
+
+ for i in range(0,12):
+ paint.setWorldMatrix(matrix)
+ paint.drawLine(450,0, 500,0)
+ matrix.rotate(30)
+
+a = TQApplication(sys.argv)
+clock = AnalogClock()
+clock.resize(100,100)
+a.setMainWidget(clock)
+clock.show()
+a.exec_loop()