diff options
Diffstat (limited to 'examples/drawlines.py')
| -rwxr-xr-x | examples/drawlines.py | 74 | 
1 files changed, 74 insertions, 0 deletions
| diff --git a/examples/drawlines.py b/examples/drawlines.py new file mode 100755 index 0000000..c1553f2 --- /dev/null +++ b/examples/drawlines.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python + +import sys, random +from python_tqt.qt import * + +TRUE = 1 +FALSE = 0 + +MAXPOINTS = 2000;  # maximum number of points +MAXCOLORS = 40; + +# +# ConnectWidget - draws connected lines +# + +class ConnectWidget(TQWidget): +	def __init__(self): +		TQWidget.__init__(self) +		self.setEraseColor( TQt.white )                # white background +		self.count = 0; +		self.down = FALSE +		 +		self.points = [] +		self.colors = [] + +		for i in range(MAXPOINTS):           # init arrays +			self.points.append(TQPoint()) +		for i in range(MAXCOLORS): +			self.colors.append(TQColor( random.randint(0,255), random.randint(0,255), random.randint(0,255) )) + +# +# Handles paint events for the connect widget. +# +	def paintEvent(self, pe): +		paint = TQPainter( self ) +		for i in range(self.count-1):               # connect all points +			for j in range(i+1, self.count): +				paint.setPen( self.colors[random.randint(0,MAXCOLORS-1)] ) # set random pen color +				paint.drawLine( self.points[i], self.points[j] )           # draw line + +# +# Handles mouse press events for the connect widget. +# +	def mousePressEvent(self, me): +		self.down = TRUE +		self.count = 0                                  # start recording points +		self.erase()                                    # erase widget contents + +# +# Handles mouse release events for the connect widget. +# +	def mouseReleaseEvent(self, me ): +		self.down = FALSE                               # done recording points +		self.update()                                   # draw the lines + +# +# Handles mouse move events for the connect widget. +# +	def mouseMoveEvent(self, me):	 +		if self.down and self.count < MAXPOINTS: +			paint = TQPainter( self ) +			self.points[self.count] = TQPoint(me.pos())   # add point +			paint.drawPoint( me.pos() )          # plot point +			self.count = self.count+1 + +# +# Create and display a ConnectWidget. +# +a = TQApplication( sys.argv ) +connect = ConnectWidget() +connect.setCaption( "PyTQt Example - Draw lines") +a.setMainWidget( connect ) +connect.show() +a.exec_loop() | 
