From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- doc/html/drawlines-example.html | 186 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 doc/html/drawlines-example.html (limited to 'doc/html/drawlines-example.html') diff --git a/doc/html/drawlines-example.html b/doc/html/drawlines-example.html new file mode 100644 index 0000000..5ff28e3 --- /dev/null +++ b/doc/html/drawlines-example.html @@ -0,0 +1,186 @@ + + + + + +Connect the Points + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

Connect the Points

+ + +

+This example shows very simple mouse-based user interaction and +painting without any world transform matrix or other advanced +features. Run the program, click the button, move the mouse, +release the button, and watch the lines get drawn. +


+

Implementation: +

/****************************************************************************
+** $Id: qt/connect.cpp   3.3.8   edited Jan 11 14:37 $
+**
+** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for Qt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include <qwidget.h>
+#include <qpainter.h>
+#include <qapplication.h>
+#include <stdlib.h>
+
+
+const int MAXPOINTS = 2000;                     // maximum number of points
+const int MAXCOLORS = 40;
+
+
+//
+// ConnectWidget - draws connected lines
+//
+
+class ConnectWidget : public QWidget
+{
+public:
+    ConnectWidget( QWidget *parent=0, const char *name=0 );
+   ~ConnectWidget();
+protected:
+    void        paintEvent( QPaintEvent * );
+    void        mousePressEvent( QMouseEvent *);
+    void        mouseReleaseEvent( QMouseEvent *);
+    void        mouseMoveEvent( QMouseEvent *);
+private:
+    QPoint     *points;                         // point array
+    QColor     *colors;                         // color array
+    int         count;                          // count = number of points
+    bool        down;                           // TRUE if mouse down
+};
+
+
+//
+// Constructs a ConnectWidget.
+//
+
+ConnectWidget::ConnectWidget( QWidget *parent, const char *name )
+    : QWidget( parent, name, WStaticContents )
+{
+    setBackgroundColor( white );                // white background
+    count = 0;
+    down = FALSE;
+    points = new QPoint[MAXPOINTS];
+    colors = new QColor[MAXCOLORS];
+    for ( int i=0; i<MAXCOLORS; i++ )           // init color array
+        colors[i] = QColor( rand()&255, rand()&255, rand()&255 );
+}
+
+ConnectWidget::~ConnectWidget()
+{
+    delete[] points;                            // cleanup
+    delete[] colors;
+}
+
+
+//
+// Handles paint events for the connect widget.
+//
+
+void ConnectWidget::paintEvent( QPaintEvent * )
+{
+    QPainter paint( this );
+    for ( int i=0; i<count-1; i++ ) {           // connect all points
+        for ( int j=i+1; j<count; j++ ) {
+            paint.setPen( colors[rand()%MAXCOLORS] ); // set random pen color
+            paint.drawLine( points[i], points[j] ); // draw line
+        }
+    }
+}
+
+
+//
+// Handles mouse press events for the connect widget.
+//
+
+void ConnectWidget::mousePressEvent( QMouseEvent * )
+{
+    down = TRUE;
+    count = 0;                                  // start recording points
+    erase();                                    // erase widget contents
+}
+
+
+//
+// Handles mouse release events for the connect widget.
+//
+
+void ConnectWidget::mouseReleaseEvent( QMouseEvent * )
+{
+    down = FALSE;                               // done recording points
+    update();                                   // draw the lines
+}
+
+
+//
+// Handles mouse move events for the connect widget.
+//
+
+void ConnectWidget::mouseMoveEvent( QMouseEvent *e )
+{
+    if ( down && count < MAXPOINTS ) {
+        QPainter paint( this );
+        points[count++] = e->pos();             // add point
+        paint.drawPoint( e->pos() );            // plot point
+    }
+}
+
+
+//
+// Create and display a ConnectWidget.
+//
+
+int main( int argc, char **argv )
+{
+    QApplication a( argc, argv );
+    ConnectWidget connect;
+#ifndef QT_NO_WIDGET_TOPEXTRA   // for Qt/Embedded minimal build
+    connect.setCaption( "Qt Example - Draw lines");
+#endif
+    a.setMainWidget( &connect );
+    connect.show();
+    return a.exec();
+}
+
+ +

See also Examples. + + +


+ +
Copyright © 2007 +TrolltechTrademarks +
Qt 3.3.8
+
+ -- cgit v1.2.1