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/forever-example.html | 196 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 doc/html/forever-example.html (limited to 'doc/html/forever-example.html') diff --git a/doc/html/forever-example.html b/doc/html/forever-example.html new file mode 100644 index 0000000..ceeaa99 --- /dev/null +++ b/doc/html/forever-example.html @@ -0,0 +1,196 @@ + + + + + +A Rectangle Draw "Benchmark" + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

A Rectangle Draw "Benchmark"

+ + +

+This example continuously draws rectangles in a window and +has another widget that counts the number of rectangles that +are drawn per second. +


+

Header file: +

/****************************************************************************
+** $Id: qt/forever.h   3.3.8   edited Jan 11 14:46 $
+**
+** Definition of something or other
+**
+** Created : 979899
+**
+** Copyright (C) 1997-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.
+**
+*****************************************************************************/
+
+#ifndef FOREVER_H
+#define FOREVER_H
+
+#include <qwidget.h>
+
+
+const int numColors = 120;
+
+
+class Forever : public QWidget
+{
+    Q_OBJECT
+public:
+    Forever( QWidget *parent=0, const char *name=0 );
+protected:
+    void        paintEvent( QPaintEvent * );
+    void        timerEvent( QTimerEvent * );
+private slots:
+    void        updateCaption();
+private:
+    int         rectangles;
+    QColor      colors[numColors];
+};
+
+
+#endif
+
+ +


+

Implementation: +

/****************************************************************************
+** $Id: qt/forever.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 <qtimer.h>
+#include <qpainter.h>
+#include <qapplication.h>
+#include <stdlib.h>                             // defines rand() function
+
+#include "forever.h"
+
+
+//
+// Forever - a widget that draws rectangles forever.
+//
+
+//
+// Constructs a Forever widget.
+//
+
+Forever::Forever( QWidget *parent, const char *name )
+    : QWidget( parent, name )
+{
+    for (int a=0; a<numColors; a++) {
+        colors[a] = QColor( rand()&255,
+                            rand()&255,
+                            rand()&255 );
+    }
+    rectangles = 0;
+    startTimer( 0 );                            // run continuous timer
+    QTimer * counter = new QTimer( this );
+    connect( counter, SIGNAL(timeout()),
+             this, SLOT(updateCaption()) );
+    counter->start( 1000 );
+}
+
+
+void Forever::updateCaption()
+{
+    QString s;
+    s.sprintf( "Qt Example - Forever - %d rectangles/second", rectangles );
+    rectangles = 0;
+    setCaption( s );
+}
+
+
+//
+// Handles paint events for the Forever widget.
+//
+
+void Forever::paintEvent( QPaintEvent * )
+{
+    QPainter paint( this );                     // painter object
+    int w = width();
+    int h = height();
+    if(w <= 0 || h <= 0)
+        return;
+    paint.setPen( NoPen );                      // do not draw outline
+    paint.setBrush( colors[rand() % numColors]);// set random brush color
+
+    QPoint p1( rand()%w, rand()%h );    // p1 = top left
+    QPoint p2( rand()%w, rand()%h );    // p2 = bottom right
+
+    QRect r( p1, p2 );
+    paint.drawRect( r );                        // draw filled rectangle
+}
+
+//
+// Handles timer events for the Forever widget.
+//
+
+void Forever::timerEvent( QTimerEvent * )
+{
+    for ( int i=0; i<100; i++ ) {
+        repaint( FALSE );                       // repaint, don't erase
+        rectangles++;
+    }
+}
+
+
+//
+// Create and display Forever widget.
+//
+
+int main( int argc, char **argv )
+{
+    QApplication a( argc, argv );               // create application object
+    Forever always;                             // create widget
+    always.resize( 400, 250 );                  // start up with size 400x250
+    a.setMainWidget( &always );                 // set as main widget
+    always.setCaption("Qt Example - Forever");
+    always.show();                              // show widget
+    return a.exec();                            // run event loop
+}
+
+ +

See also Examples. + + +


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