summaryrefslogtreecommitdiffstats
path: root/python/pyqt/examples3/desktop.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/pyqt/examples3/desktop.py')
-rwxr-xr-xpython/pyqt/examples3/desktop.py230
1 files changed, 0 insertions, 230 deletions
diff --git a/python/pyqt/examples3/desktop.py b/python/pyqt/examples3/desktop.py
deleted file mode 100755
index 7036248d..00000000
--- a/python/pyqt/examples3/desktop.py
+++ /dev/null
@@ -1,230 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-from qt import *
-
-seed = 0.353535353535
-KINDA_RAND_MAX = 32767
-
-def kindaRand():
- global seed
- seed = seed * 147
- seed = seed - int(seed)
- return int(seed*(KINDA_RAND_MAX + 1))
-
-velmax = 15
-velmin = 4
-
-def velocity(i):
- if i == 1 or i == 2:
- i = (kindaRand()&0x7fff % velmax)/3 + velmin
- else:
- i = (kindaRand()&0x7fff % velmax) + velmin
- return i
-
-maxpoints = 5
-maxcurves = 8
-
-def poly():
- d = QApplication.desktop()
- d.setEraseColor(Qt.white)
- xvel = [ 0 ] * maxpoints
- yvel = [ 0 ] * maxpoints
- head = 0
- tail = -maxcurves + 2
- a = [ QPointArray() ] * maxcurves
- r = d.rect()
- for i in range(maxcurves):
- a[i].resize(maxpoints)
- p = a[0]
- for i in range(maxpoints):
- p.setPoint(i, (kindaRand()&0x7fff) % r.width(),
- (kindaRand()&0x7fff) % r.height() )
- xvel[i] = velocity(i)
- yvel[i] = velocity(i)
-
- paint = QPainter()
- paint.begin(d)
-
- for ntimes in range(2000):
- paint.setBrush(QColor(kindaRand()%360,180,255, QColor.Hsv))
- paint.drawPolygon(a[head])
- tail = tail + 1
- if tail >= maxcurves:
- tail = 0
- minx = r.left()
- maxx = r.right()
- miny = r.top()
- maxy = r.bottom()
- p = a[head]
- head = head + 1
- if head >= maxcurves:
- head = 0
- for i in range(maxpoints):
- x, y = p.point(i)
- x = x + xvel[i]
- y = y + yvel[i]
- if x >= maxx:
- x = maxx - (x - maxx + 1)
- xvel[i] = -velocity(i)
- if x <= minx:
- x = minx + (minx - x + 1)
- xvel[i] = velocity(i)
- if y >= maxy:
- y = maxy - (y - maxy + 1)
- yvel[i] = -velocity(i)
- if y <= miny:
- y = miny + (miny - y + 1)
- yvel[i] = velocity(i)
- a[head].setPoint(i, x, y)
- paint.end()
-
-def rotate():
- w = 64
- h = 64
- image = QImage(w, h, 8, 128)
- for i in range(128):
- image.setColor(i, qRgb(i,0,0))
- for y in range(h):
- for x in range(w):
- image.setPixel(x,y,(x+y)%128)
-
- pm = QPixmap()
- pm.convertFromImage(image)
- pm.setOptimization(QPixmap.BestOptim)
-
- d = QApplication.desktop()
-
- for i in range(0,361,2):
- m = QWMatrix()
- m.rotate(i)
- rpm = pm.xForm(m)
- d.setErasePixmap(rpm)
- d.update()
-
-def generateStone(pm, c1, c2, c3):
- p = QPainter()
- p1 = QPen(c1, 0)
- p2 = QPen(c2, 0)
- p3 = QPen(c3, 0)
-
- p.begin(pm)
- for i in range(pm.width()):
- for j in range(pm.height()):
- r = kindaRand()
- if r < KINDA_RAND_MAX / 3:
- p.setPen(p1)
- elif r < KINDA_RAND_MAX / 3 * 2:
- p.setPen(p2)
- else:
- p.setPen(p3)
- p.drawPoint(i, j)
- p.end()
-
-def drawShadeText(p, x, y, text, topColor, bottomColor, sw=2):
- if not p.isActive():
- return
-
- p.setPen(bottomColor)
- p.drawText(x+sw, y+sw, text)
- p.setPen(topColor)
- p.drawText(x, y, text)
-
-class DesktopWidget(QWidget):
- def __init__(self, s, parent=None, name=''):
- QWidget.__init__(self, parent, name, Qt.WType_Desktop | Qt.WPaintDesktop)
- self.text = s
- self.pm = None
-
- def paintEvent(self, pe):
- c1 = self.eraseColor()
- c2 = c1.light(104)
- c3 = c1.dark(106)
- if not self.pm:
- self.pm = QPixmap(64, 64)
- generateStone(self.pm, c1, c2, c3)
- self.setErasePixmap(self.pm)
- self.update()
- br = self.fontMetrics().boundingRect(self.text)
- offscreen = QPixmap(br.width(), br.height())
- x = self.width()/2 - br.width()/2
- y = self.height()/2 - br.height()/2
- offscreen.fill(self, x, y)
- p = QPainter()
- p.begin(offscreen)
- drawShadeText(p, -br.x(), -br.y(), self.text, c2, c3, 3)
- p.end()
- bitBlt(self, x, y, offscreen)
-
-def desktopWidget(s='Trolltech'):
- t = DesktopWidget(s)
- t.update()
- qApp.exec_loop()
-
-def desktopText(s='Trolltech'):
- border = 20
-
- c1 = qApp.palette().normal().background()
- c2 = c1.light(104)
- c3 = c1.dark(106)
-
- pm = QPixmap(10, 10)
- p = QPainter()
- p.begin(pm)
- r = p.fontMetrics().boundingRect(s)
- p.end()
-
- appWidth = qApp.desktop().width()
- appHeight = qApp.desktop().height()
- if r.width() > appWidth - border*2:
- r.setWidth(appWidth - border*2)
- if r.height() > appHeight - border*2:
- r.setHeight(appHeight - border*2)
-
- pm.resize(r.size().width()+border*2,r.size().height()+border*2)
- generateStone(pm, c1, c2, c3)
- p.begin(pm)
- drawShadeText(p, -r.x()+border, -r.y()+border, s, c2, c3)
- p.end()
-
- qApp.desktop().setErasePixmap(pm)
-
-a = QApplication(sys.argv)
-if len(sys.argv) > 1:
- f = QFont('charter', 96, QFont.Black)
- f.setStyleHint(QFont.Times)
- a.setFont(f)
-
-validOptions = 0
-
-if len(sys.argv) == 2:
- validOptions = 1
- if sys.argv[1] == '-poly':
- poly()
- elif sys.argv[1] == '-rotate':
- rotate()
- elif sys.argv[1] == '-troll':
- desktopText()
- elif sys.argv[1] == '-trollwidget':
- desktopWidget()
- else:
- validOptions = 0
-
-if len(sys.argv) == 3:
- validOptions = 1
- if sys.argv[1] == '-shadetext':
- desktopText(sys.argv[2])
- elif sys.argv[1] == '-shadewidget':
- desktopWidget(sys.argv[2])
- else:
- validOptions = 0
-
-if not validOptions:
- print """Usage:
-\tdesktop -poly
-\tdesktop -rotate
-\tdesktop -troll
-\tdesktop -trollwidget
-\tdesktop -shadetext <text>
-\tdesktop -shadewidget <text>"""
- rotate()