summaryrefslogtreecommitdiffstats
path: root/python/pyqt/examples2/aclock.py
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit90825e2392b2d70e43c7a25b8a3752299a933894 (patch)
treee33aa27f02b74604afbfd0ea4f1cfca8833d882a /python/pyqt/examples2/aclock.py
downloadtdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz
tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'python/pyqt/examples2/aclock.py')
-rwxr-xr-xpython/pyqt/examples2/aclock.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/python/pyqt/examples2/aclock.py b/python/pyqt/examples2/aclock.py
new file mode 100755
index 00000000..38ed36c9
--- /dev/null
+++ b/python/pyqt/examples2/aclock.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+
+import sys
+from qt import *
+
+def QMIN(x, y):
+ if y > x: return y
+ return x
+class AnalogClock(QWidget):
+ def __init__(self, *args):
+ apply(QWidget.__init__,(self,) + args)
+ self.time = QTime.currentTime()
+ internalTimer = QTimer(self)
+ self.connect(internalTimer, SIGNAL("timeout()"), self.timeout)
+ internalTimer.start(5000)
+
+ def timeout(self):
+ new_time = QTime.currentTime()
+ if new_time.minute() != self.time.minute():
+ self.update()
+
+ def paintEvent(self, qe):
+ if not self.isVisible():
+ return
+ self.time = QTime.currentTime()
+
+ pts = QPointArray()
+ paint = QPainter(self)
+ paint.setBrush(self.foregroundColor())
+
+ cp = QPoint(self.rect().center())
+ d = QMIN(self.width(), self.height())
+ matrix = QWMatrix()
+ 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 = QApplication(sys.argv)
+clock = AnalogClock()
+clock.resize(100,100)
+a.setMainWidget(clock)
+clock.show()
+a.exec_loop()